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

本文介绍了一种寻找数组中最大元素及其是否至少为第二大元素两倍的算法实现。该算法通过一次遍历找到最大值和次大值,最后判断两者的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

b10f098ed16c9a7bc2f0b68721dfcde4.png

题目

bf21fd45abd16b68538684ec2caa3ae3.png

题解

只要通过遍历获得最大和第二大的数即可。

class Solution {
    public int dominantIndex(int[] nums) {


        if (nums.length == 1) {
            return 0;
        }
        int max = 0;
        int then = 1;

        if (nums[0] < nums[1]) {
            max = 1;
            then = 0;
        }
        
        for (int i = 2; i < nums.length; i++) {

            if (nums[i] > nums[max]) {
                then = max;
                max = i;
            } else if (nums[i] > nums[then]){
                then = i;
            }
        }

        if (nums[max] >= nums[then] + nums[then]) {
            return max;
        }
        return -1;

    }
}

- <End /> -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值