0747. Largest Number At Least Twice of Others #
题目 #
-
给定整数数组
nums
,其中存在 唯一的 最大整数 。 -
找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回
-1
。
思路 #
双指针 #
代码 #
双指针 #
class Solution {
public int dominantIndex(int[] nums) {
if (nums.length == 1) return 0;
/** 双指针 */
int first = -1, second = -1;
if (nums[0] >= nums[1]) { first = 0; second = 1; }
else { first = 1; second = 0; }
/** 遍历 */
for (int i = 2; i < nums.length; i++) {
if (nums[i] >= nums[first]) {
second = first;
first = i;
}
else if (nums[i] > nums[second]) second = i;
}
return nums[first] >= 2 * nums[second] ? first : second;
}
}