题目来源:
leetcode题目,网址:747. 至少是其他数字两倍的最大数 - 力扣(LeetCode)
解题思路:
遍历数组,找出最大值、最大值的下标及次大值。若最大值是次大值的两倍及以上,返回最大值的下标,否则返回 -1 。
解题代码:
class Solution {
public int dominantIndex(int[] nums) {
if(nums.length==1)
return 0;
int largest=Math.max(nums[0],nums[1]);
int largestIndex=nums[0]==largest?0:1;
int secondLargest=Math.min(nums[0],nums[1]);
for(int i=2;i<nums.length;i++){
if(nums[i]>largest){
secondLargest=largest;
largest=nums[i];
largestIndex=i;
}else if(nums[i]>secondLargest){
secondLargest=nums[i];
}
}
return largest>=secondLargest*2?largestIndex:-1;
}
}
总结:
题目给出的数组长度范围和实际测试用例对数组长度的要求不一致。