1. 题目原址
https://leetcode.com/problems/largest-number-at-least-twice-of-others/
2. 题目描述
3. 题目大意
找到数组中最大的数字,如果他比其他所有的数组都大2倍以上,则返回最大元素的索引值,否则返回 - 1
4. 解题思路
- 首先找到数组中的最大元素和第二大元素以及最大元素的下标
- 最后比较最大元素是否是第二大元素的2倍多,如果是,则返回下标,如果不是则返回 -1
5. AC代码
class Solution {
public int dominantIndex(int[] nums) {
if(nums == null || nums.length <= 0)
return -1;
int max = 0, seconde = 0, ret = 0;
int i = 0;
for(; i < nums.length; i++) {
if(nums[i] > max) {
ret = i;
seconde = max;
max = nums[i];
} else if(nums[i] > seconde)
seconde = nums[i];
}
return (max / 2 >= seconde) ? ret : -1;
}
}