
解法二
# -*- coding:utf-8 -*-
class Solution:
def MoreThanHalfNum_Solution(self, numbers):
# write code here
result,times = numbers[0],1
maxtime = 0
lens = len(numbers)
for i in range(1,lens):
if times == 0:
result = numbers[i]
times = 1
elif numbers[i] == result:
times = times+1
else:
times = times-1
for i in range(lens):
if numbers[i] == result:
maxtime = maxtime+1
if maxtime > lens/2:
return result
else:
return 0
本文介绍了一种在未排序整数数组中寻找超过一半以上出现次数的数字的算法。通过迭代减少候选者的方式,最终找到可能的众数,并验证其是否真正超过数组长度的一半。

300

被折叠的 条评论
为什么被折叠?



