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
        
相关推荐
圣保罗的大教堂11 小时前
leetcode 3619. 总价值可以被 K 整除的岛屿数目 中等
leetcode
文丑颜不良啊17 小时前
LeetCode1141~1160题目解析
java·leetcode
木井巳17 小时前
【动态规划: 路径问题】下降路径最小和
java·算法·leetcode·动态规划·推荐算法
ynchyong18 小时前
培养程序化思维
leetcode·程序化思维·刷题经验
YLCHUP19 小时前
【模拟&STL】题解:AT_abc203_e [ABC203E] White Pawn_基础算法_数据结构_STL模板库_AtcoderABC_C++算法竞赛
数据结构·c++·算法·leetcode·动态规划·哈希算法·近邻算法
(●—●)橘子……20 小时前
力扣 第525场周赛 练习理解
数据结构·python·学习·算法·leetcode
wenyq720 小时前
LeetCode 152. Maximum Product Subarray
java·算法·leetcode
文丑颜不良啊21 小时前
LeetCode1181~1200题目解析
java·leetcode
海绵宝宝转agent21 小时前
Leetcode100+面经
java·笔记·学习·算法·leetcode·深度优先
Shaoshing21 小时前
LeetCode100 283.移动零
java·数据结构·算法·leetcode