[编程题]数组中出现次数超过一半的数字

数组中出现次数超过一半的数字

http://www.nowcoder.com/questionTerminal/e8a1b01a2df14cb2b228b30ee6a92163

和leetcode有点区别,主要在于输入不保证一定有答案。

最后加上一个判断最多个数的有没有超过一半就好了。

class Solution:
def MoreThanHalfNum_Solution(self, numbers):
# write code here
if len(numbers) == 0: return 0
count = 0
for n in numbers:
if count == 0:
count = 1
ans = n
else:
if ans == n: count += 1
else: count -= 1
# 答案计数,确认正确✅
count = sum(map(lambda x:x==ans, numbers))
return ans if count > len(numbers)//2 else 0

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
牛客154160166号:9月底还给我发短信,好奇怪,我24届的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务