题目
思路
- 只需要比较比较最大数和第二大数,如果最大数要大于第二大数的两倍,则一定是大于其他数字两倍的最大值,反之,如果不成立,则不完全成立,返回-1即可。
Code
class Solution {
public int dominantIndex(int[] nums) {
if(nums.length==1)
return 0;
int index=-1;
int max=Integer.MIN_VALUE;
int second=Integer.MIN_VALUE;
//分别找出数组中的最大数和第二大的数,如果第一大的数比第二大的数的二倍小,则返回-1
for(int i=0;i<nums.length;i++){
if(nums[i]>max){
second=max;
max=nums[i];
index=i;
}
else if(nums[i]>second){
second=nums[i];
}
}
if(max<2*second)
index=-1;
return index;
}
}
代码运行结果截图