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

猜你喜欢

转载自blog.csdn.net/qq_39029148/article/details/89076808
今日推荐