【LeetCode】169. 多数元素

1. 题目

2. 分析

说实话,这虽然是一道简单题,但我真没想到LeetCode官方题解会给出这么多种方案。下面就来谈谈如何在O(n)的时间复杂度下求出本题。

O(n)复杂度的解法挺难想到。本质上类似于消消乐游戏。如果一个元素是数组中的众数,那么很明显,将众数跟剩余的各个数相消,那么剩下来的那个数就是众数。那么问题来了,如何做到相消?仔细领悟下面这段代码。

3. 代码

class Solution:
    def majorityElement(self, nums: List[int]) -> int:
        candidate = nums[0]
        cnt = 0
        for num in nums:
            if cnt == 0: # 需要更换一个candidate
                candidate = num 
            if num == candidate:
                cnt += 1
            else:
                cnt -= 1
            # print(num, candidate, cnt)
        return candidate

相关推荐

  1. [leetcode] 169. 多数元素

    2024-07-10 06:32:07       40 阅读
  2. leetcode 169.多数元素

    2024-07-10 06:32:07       79 阅读
  3. LeetCode 169. 多数元素

    2024-07-10 06:32:07       18 阅读
  4. leetcode-169-多数元素

    2024-07-10 06:32:07       14 阅读
  5. LeetCode169. 多数元素

    2024-07-10 06:32:07       8 阅读
  6. 多数元素算法(leetcode169题)

    2024-07-10 06:32:07       40 阅读
  7. LeetCode169.多数元素(哈希表)

    2024-07-10 06:32:07       42 阅读
  8. 169.多数元素

    2024-07-10 06:32:07       24 阅读
  9. 169. 多数元素

    2024-07-10 06:32:07       13 阅读
  10. Leetcode 《面试经典150题》169. 多数元素

    2024-07-10 06:32:07       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 06:32:07       3 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 06:32:07       4 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 06:32:07       3 阅读
  4. Python语言-面向对象

    2024-07-10 06:32:07       2 阅读

热门阅读

  1. Docker基础使用

    2024-07-10 06:32:07       8 阅读
  2. c_各个unsigned int 和 int的取值范围

    2024-07-10 06:32:07       10 阅读
  3. SVG in VSCode: A Comprehensive Guide

    2024-07-10 06:32:07       7 阅读
  4. 缓存新境界:Eureka中服务的分布式缓存实现策略

    2024-07-10 06:32:07       6 阅读
  5. 架构设计(2)云原生架构与实例部署

    2024-07-10 06:32:07       9 阅读
  6. 力扣--滑动窗口最大值

    2024-07-10 06:32:07       10 阅读
  7. 后端开发常见错误

    2024-07-10 06:32:07       11 阅读
  8. DNS缓存详解

    2024-07-10 06:32:07       7 阅读
  9. Docker 的基本概念和优势

    2024-07-10 06:32:07       10 阅读