题目:
算法思想:至少的意思是只要最大的比次最大的数大两倍及以上,就可以了,所以关键是找出最大数和次最大数。注意不要从数组起始元素作为最小值开始比较,要从int的最小值开始,因为数组的最大值是数组首个元素就会出错。
代码:
int dominantIndex(vector<int>& nums) {
if(nums.size() <= 1)
return 0;
int Max = 1 << 30;
int a_max = -1*Max;
int b_max = -1*Max;
int index = 0;
for(int i = 0;i < nums.size();i++)
{
if(a_max < nums[i])
{
a_max = nums[i];
index = i;
}
}
for(int i = 0;i < nums.size();i++)
{
if(b_max < nums[i] && nums[i] < a_max)
b_max = nums[i];
}
if(a_max >= b_max*2)
return index;
return -1;
}