解題思路:
(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;
}
};