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
        
相关推荐
8Qi89 小时前
LeetCode 213:打家劫舍 II(House Robber II)—— 题解 ✅
算法·leetcode·职场和发展·动态规划
Lsk_Smion10 小时前
力扣实训 _ [75].颜色分类 _ 杨辉三角
数据结构·算法·leetcode
8Qi812 小时前
LeetCode 1049:最后一块石头的重量 II —— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包
运筹vivo@15 小时前
LeetCode 2574. 左右元素和的差值
算法·leetcode·职场和发展·每日一题
一只齐刘海的猫16 小时前
【Leetcode】移动零
算法·leetcode·职场和发展
人道领域16 小时前
【LeetCode刷题日记】131.分割回文串,动态规划优化
java·开发语言·leetcode
Lsk_Smion19 小时前
力扣实训 _ [994].腐烂的橘子/图论
算法·leetcode·图论
8Qi820 小时前
LeetCode 337:打家劫舍 III(House Robber III)—— 题解 ✅
算法·leetcode·二叉树·动态规划
2601_9611940220 小时前
教资科三美术考什么|初中高中美术题型考点和模板资料
leetcode·elasticsearch·职场和发展·蓝桥杯·pat考试·lucene
8Qi820 小时前
LeetCode 121 & 122:股票买卖问题(DP 对比题解)✅
算法·leetcode·职场和发展·动态规划