nums = [2, 2, 2, 3, 3, 4]
len_nums = len(nums)
if len_nums < 2:
return 0
# 先计算出现最多次数的值是什么
res = nums[0]
count = 1
for i in range(1, len_nums):
# 必须先判断count是否为0
if count == 0:
res = nums[i]
count = 1
# 再看是否相等,相等加1,否则减1
elif nums[i] != res:
count -= 1
elif nums[i] == res:
count += 1
count_double = 0
# 判断是否超过一半
for j in nums:
if j == res:
count_double += 1
if count_double >= len_nums//2:
return res
else:
return 0
原文:https://www.cnblogs.com/dragon790413/p/14824682.html