题目描述:在一个数组中找到最大的一个数字,并且这个数字是其他数字的至少两倍
题目思路:
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