其他分享
首页 > 其他分享> > 摩尔投票法

摩尔投票法

作者:互联网

摩尔投票法:即相同则加,不同则减。

利用摩尔投票法求数组中的众数,也就是数量超过数组一班的数。

思路:假设众数为数组第一个数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