Leetcode|169. 多数元素【笔记】
发布日期:2021-05-24 01:21:25 浏览次数:13 分类:精选文章

本文共 624 字,大约阅读时间需要 2 分钟。

LeetCode 169. 多数元素

在数组中找到出现次数超过半数的多数元素,这个问题可以通过多种方法解决。以下是一种简洁且高效的方法:

方法思路

我们可以利用排序的特性来快速找到多数元素:

  • 排序数组:首先对数组进行排序。
  • 计算中间位置:找到数组长度 n 的中间位置,即 ⌊n/2⌋。
  • 确定多数元素:排序后的数组中,位于中间位置的元素即为多数元素。
  • 这种方法的时间复杂度主要取决于排序操作,为 O(n log n),适用于大部分实际情况。虽然不是最优的线性时间复杂度,但实现简便且效率足够高。

    解决代码

    from typing import Listfrom collections import Counterdef majorityElement(nums: List[int]) -> int:    n = len(nums)    counter = Counter(nums)    return max(counter, key=counter.get)

    代码解释

  • 导入必要的模块:使用 List 类型和 Counter 类进行类型声明和计数操作。
  • 统计元素频率:使用 Counter 统计数组中每个元素的出现次数。
  • 查找频率最高的元素:通过 max 函数找到出现次数最多的元素,即为多数元素。
  • 这种方法利用哈希表的高效性,使得代码简洁且易于理解。虽然多数元素一定存在且唯一,所以上述方法无需额外处理,以确保唯一性优先考虑了所有情况。

    上一篇:Leetcode|283. 移动零【笔记】
    下一篇:Leetcode|70. 爬楼梯【笔记】

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2025年04月18日 21时52分15秒