news 2026/5/20 15:45:32

LeetCode 前K个高频元素题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 前K个高频元素题解

LeetCode 前K个高频元素题解

题目描述

给定一个数组,找到前 k 个高频元素。

示例

输入:nums = [1,1,1,2,2,3],k = 2
输出:[1,2]

解题思路

方法:堆

思路

  • 使用哈希表统计每个元素出现的次数。
  • 使用最小堆维护前 k 个高频元素。
  • 遍历哈希表,将每个元素加入堆中。
  • 如果堆的大小超过 k,则弹出堆顶元素。
  • 最后堆中的元素就是前 k 个高频元素。

复杂度分析

  • 时间复杂度:O(n log k)
  • 空间复杂度:O(n)

代码实现

import heapq from collections import Counter def top_k_frequent(nums, k): count = Counter(nums) heap = [] for num, freq in count.items(): heapq.heappush(heap, (freq, num)) if len(heap) > k: heapq.heappop(heap) return [num for freq, num in heap] # 测试 def test_top_k_frequent(): nums = [1, 1, 1, 2, 2, 3] k = 2 print(top_k_frequent(nums, k)) # 输出:[1, 2] if __name__ == "__main__": test_top_k_frequent()

总结

前K个高频元素是堆的典型应用,通过维护一个大小为 k 的堆来找出前 k 个高频元素。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 15:45:12

2026亲测PanDownload解析百度网盘不限速下载:我用它拉满宽带的亲测教程

让我们先解释一下我为什么推它。百度网盘速度限制大家都知道,普通用户基本上停留在低速范围内,即使成员有时也会有各种抽搐。我以前尝试过一切:更改主机、使用Aria2脚本、浏览器插件等,它要么很烦人,要么不稳定。下面的…

作者头像 李华
网站建设 2026/5/20 15:44:01

LangChain DeepAgents 学习笔记

LangChain DeepAgents 学习笔记 摘要 LangChain的DeepAgents已经发布有段时间了,最近的几个版本基本覆盖了大多数智能体都应该有的功能。本笔记基于 LangChain 的 DeepAgents 框架,演示如何构建了一个具有角色扮演能力的 AI 助手,并集成了自…

作者头像 李华
网站建设 2026/5/20 15:43:02

R3nzSkin国服换肤工具:免费体验所有英雄联盟皮肤的终极指南

R3nzSkin国服换肤工具:免费体验所有英雄联盟皮肤的终极指南 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 你是否梦想在英雄联盟国服中免费…

作者头像 李华
网站建设 2026/5/20 15:42:12

无王无帝定乾坤,来自田间第一人 铁哥携标踏前路

无王无帝定乾坤,来自田间第一人。 一、尘世迷障 世间长路漫漫,尘世迷雾重重。 千年旧途布满桎梏,王权旧路早已难行。 世人奔走半生,常失方向,难寻归途。 乱世需有明灯引路,盛世当有标杆前行。 铁哥心怀苍…

作者头像 李华
网站建设 2026/5/20 15:39:10

Android Auto真正价值在默认应用外!六个应用让驾驶更轻松、生活更便利

ZDNET核心要点Android Auto的真正价值在于默认应用之外的其他应用,这些应用能带来娱乐、提供帮助并保障安全,只需在手机上安装即可。若仅用它导航或控制车载媒体,会错过大量功能。有数百款应用与Android Auto兼容,使用支持汽车的版…

作者头像 李华