其他分享
首页 > 其他分享> > LeetCode——747.至少是其他数字两倍的最大数

LeetCode——747.至少是其他数字两倍的最大数

作者:互联网

通过万岁!!!

伪代码

首先判断数组长度要是=1,则直接return 0即可
定义最大的和第二大的数的变量,默认设置成0
定义最大的数的下标,默认是-1即可。
for变量数组
    当前数要是大于最大的数,则之前的最大的给第二大的,现在这个数给最大的,并记录下标,然后直接continue
    第二大的数和当前数进行比较,要是大于第二大的数,则将这个数给第二大的。
最后看看最大的是不是大于第二大的两倍,如果是返回最大的下标
否则返回-1即可

java代码

class Solution {
    public int dominantIndex(int[] nums) {
        if (nums.length == 1) return 0;
        int first = 0, second = 0;
        int firstIdx = -1;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] > first) {
                second = first;
                first = nums[i];
                firstIdx = i;
                continue;
            }
            second = second < nums[i] ? nums[i] : second;
        }
        if (first >= 2 * second)
            return firstIdx;
        else return -1;
    }
}

标签:下标,最大,最大数,nums,int,747,second,LeetCode,first
来源: https://blog.csdn.net/qq_39056803/article/details/122481859