0747. Largest Number at Least Twice of Others

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;
    }
}