版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41819299/article/details/81171622
一、要求
举个例子:
输入:[1, 2, 3, 2, 2, 2, 5, 4, 2]
输出:2
二、思路及代码
数组中出现次数超过一半的肯定只有1个数组,满足超过一半即可返回,不需要全部计数后判断
用字典进行辅助
def solution(L):
num={}
for i in L:
if i in num:#简单写法:num[i]+=1 if num.get(i) else num[i]=1
num[i]+=1
else:
num[i]=1
if num[i]>len(L)/2:
return i
a=[1, 2, 3, 2, 2, 2, 5, 4, 2]
print(solution(a))
三、运行结果
2
四、思考与总结
1.这道题 把判断超过一半写在计数的for循环中,可以节省运行时间
2.字典有个用来判断新关键词的简单写法:即用.get(key)
num[i]+=1 if num.get(key) else num[i]=1