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
        
相关推荐
Nil20817 小时前
leetcode 118杨辉三角
算法·leetcode·职场和发展
All for pursuit.19 小时前
【设计-1】208.实现Trie (前缀树)
数据结构·c++·算法·leetcode
CoderYanger1 天前
A.每日一题:1614. 括号的最大嵌套深度
java·程序人生·算法·leetcode·面试·学习方法
Xin7701 天前
LeetCode 230. 二叉搜索树中第 K 小的元素(迭代中序遍历 + 栈)
leetcode
Navigator_Z1 天前
LeetCode //C - 1283. Find the Smallest Divisor Given a Threshold
c语言·算法·leetcode
我不会起名字3221 天前
二叉树的遍历与二叉搜索树:把递归、迭代、还原树一次讲透
数据结构·leetcode·二叉树·二叉搜索树
yi0111 天前
Leetcode 49 用 “身份证‘‘巧解
人工智能·笔记·python·算法·leetcode·哈希表
yi0111 天前
DAY22: LeetCode 733:图像渲染——从二维网格开始理解 DFS 和 BFS
数据结构·笔记·python·算法·leetcode·深度优先·宽度优先
Pniubi1 天前
力扣41缺失的第一个正数(哈希表法)
算法·leetcode·职场和发展
Nil2081 天前
leetcode 70爬楼梯
算法·leetcode·动态规划