LeetCode 747、至少是其他数字两倍的最大数
LeetCode 747、至少是其他数字两倍的最大数
#747. 至少是其他数字两倍的最大数
class Solution:
def dominantIndex(self, nums: List[int]) -> int:
# 最大数
biggest = -1
# 第二大数
bigger = -1
# 最大数所在的索引
index = 0
# 遍历数组 nums
# i 表示遍历过程中当前元素的索引
# num 表示遍历过程中当前元素的值
for i, num in enumerate(nums):
# 在遍历过程中
# 如果发现当前元素的值大于了之前找到的最大数
if num > biggest:
# 1、更新第二大数
bigger = biggest
# 2、更新最大数为 num
biggest = num
# 注意,千万不能交换上面 1 和 2 代码的顺序
# 记录最大数的索引
index = i
# 否则,发现当前元素的值没有大于之前找到的最大数
# biggest 不需要更新
# 如果发现当前元素的值没有大于之前找到的第二大的数
elif num > bigger:
# 更新第二大数
bigger = num
# 最后,判断一下最大数是否是第二大数的两倍
# 如果是,则返回最大数的索引 index
# 否则,返回 -1
return index if biggest >= bigger * 2 else -1