leetcode largest number at least twice of others

题目描述:在一个数组中找到最大的一个数字,并且这个数字是其他数字的至少两倍
题目思路:
1、对每一个数字都是两倍,意思就是对于第二大的数是两倍以上即可,这样就转换成了找最大两个数字的问题
2、设立两个数字:max_num and sec_max,
if max_num<x: exchange(x, max_num)
exchange(max_num, sec_max)
elif sec_max<x: exchange(x, sec_max)
代码:

class Solution:
    def dominantIndex(self, nums: List[int]) -> int:
        max_ele = sec_max = 0
        for i in range(len(nums)):
            if max_ele < nums[i]:
                sec_max = max_ele
                max_ele = nums[i]
                max_i = i
            elif sec_max < nums[i]:
                sec_max = nums[i]
        return -1 if sec_max and  max_ele/sec_max<2  else  max_i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值