leetcode hot100 169. 多数元素 easy 技巧 摩尔投票


摩尔投票

不同元素两两抵消,最后剩下的一定是多数元素

时间:O(n)

空间:O(1)

clike 复制代码
class Solution:
    def majorityElement(self, nums: List[int]) -> int:

        # 摩尔投票:不同元素两两抵消,最后剩下的一定是多数元素
        # 时间:O(n),空间:O(1)

        candidate = None  # 多数元素
        count = 0

        for num in nums:
            if count == 0:
                candidate = num  # count抵消完了,更新候选为当前num

            # count ≠0,有候选者
            if num == candidate:   # 还是候选者,count+1
                count += 1
            else:                   # 否则抵消
                count -= 1   

        return candidate
        
相关推荐
什巳1 小时前
JAVA练习306- 翻转二叉树
java·数据结构·算法·leetcode
smj2302_796826521 小时前
解决leetcode第3989题网格中保持一致的最大列数
python·算法·leetcode
CoderYanger6 小时前
A.每日一题:3020. 子集中元素的最大数量
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
什巳7 小时前
JAVA练习312- 二叉搜索树中第 K 小的元素
java·数据结构·算法·leetcode
想吃火锅10059 小时前
【leetcode】5.最长回文子串js
算法·leetcode·职场和发展
CoderYanger10 小时前
A.每日一题:1967题+1331题
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
va学弟10 小时前
LeetCode 热题 100 题解(1):哈希
python·算法·leetcode·哈希算法
Tisfy12 小时前
LeetCode 1979.找出数组的最大公约数:模拟(附手动gcd)
java·数学·算法·leetcode·题解·最大公约数
To_OC12 小时前
LC 79 单词搜索:都说这是回溯入门题,我却连错三回
javascript·算法·leetcode
alphaTao1 天前
LeetCode 每日一题 2026/7/13-2026/7/19
算法·leetcode