题目
给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。
请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。
解题思路
模拟,找到第一大的和第二大的数判断一下即可。
代码
class Solution {
public int dominantIndex(int[] nums) {
int max_value = -1, second_value = -1;
int length = nums.length, ans = -1;
for (int i = 0; i < length; i++) {
if (nums[i] > max_value) {
max_value = nums[i];
ans = i;
}
}
for (int i = 0; i < length; i++) {
if (nums[i] != max_value && nums[i] > second_value) {
second_value = nums[i];
}
}
return max_value >= second_value * 2 ? ans : -1;
}
}