解题思路:
(1)维持两个最大值指针,一个表示当前最大值max,一个表示当前第二大值premax
(2)最后判断max>=2*premax,灵感来自于链表中的指针操作
(3)最后需要注意的是题目限制了最大值只有一个
class Solution {
public:
int dominantIndex(vector<int>& nums) {
if(nums.size()==0) return -1;
int premax = INT_MIN,max= INT_MIN;
int index = 0;
for(int i=0;i<nums.size();i++) {
if(nums[i]>=max) {
premax = max;
max = nums[i];
index = i;
} else {
if(nums[i]>premax) premax = nums[i];
}
}
if(nums.size()==1||max>=2*premax) return index;
else return -1;
}
};