摩尔投票法
作者:互联网
摩尔投票法:即相同则加,不同则减。
利用摩尔投票法求数组中的众数,也就是数量超过数组一班的数。
思路:假设众数为数组第一个数num,用count表示此时有几个num,count初始值为1。从第二个数开始遍历数组,如果与假设的众数一样,count += 1。如果不一样,则count -= 1。当count == -1的时候,我们将数组中此时遍历到的数设为众数num,count = 1。继续向后遍历数组。因此,遍历完数组后num的值就是众数。
class Solution:
def majorityElement(self, nums: List[int]) -> int:
num = nums[0]
count = 1
for i in range(1,len(nums)):
if nums[i] == num:
count += 1
else:
count -= 1
if count == -1:
num = nums[i]
count = 1
return num
标签:count,遍历,nums,摩尔,num,投票,数组,众数 来源: https://blog.csdn.net/qq_31997185/article/details/120486980