py摩尔投票算法
Posted 21座的胖子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了py摩尔投票算法相关的知识,希望对你有一定的参考价值。
###题目
思路
这道题用摩尔投票算法做,先设定一个summ为0统计个数。再初始化一个变量num。
从第一个数开始,遇到和它一样的数就加1,不一样就减一。最后留下的肯定是众数。但是有一个前提,当summ为0时,遇到不同的数不减1,而是num变为这个数。
逻辑
遍历数组,先判断summ是否为0,为0的话则赋值给num;不为0的话进行判断:当前数是否等于num,相等则summ+1,不等则summ-1
代码
class Solution:
def majorityElement(self, nums: List[int]) -> int:
num = summ = 0
for i in nums:
if summ == 0:
num = i
if num == i:
summ += 1
else:
summ -= 1
return num
以上是关于py摩尔投票算法的主要内容,如果未能解决你的问题,请参考以下文章