题目
给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。
请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。
解析
- 如果最大值是次大值的2倍,则肯定成立
- 记录最大值、次大值、下标
code
public class Solution {
public static int dominantIndex(int[] nums) {
int biggest = 0, great = -1, pos = -1;
for (int i = 0; i < nums.length; i++) {
if (nums[i] > biggest) {
great = biggest;
biggest = nums[i];
pos = i;
} else if (nums[i] > great) {
great = nums[i];
}
}
return biggest >= great * 2 ? pos : -1;
}
public static void main(String[] args) {
int[] testArr = {1};
System.out.println(dominantIndex(testArr));
}
}