[Leetcode]Top K问题总结
问题:
找第 K 大的数
- 在一个数组里
- 在数据流中
找最大的 K 个数
- 在一个数组里
- 在数据流中
找出现频率最高的 K 个数
- 在一个数组中
- 在数据流中
- 在文件中
这种题适合各种follow up
核实问题:
是否需要精确的结果?
数据是离线的(文件形式计算一次得到一个结果)还是在线的(数据流可无限次查询实时结果)?
- -
问题1 - 找第 K 大的数:
- 在一个整数数组中,找第 K 大的数 [Leetcode题目]
解法1: 快排整个数组 O(nlogn)
解法2: 快选第K大 O(n) + 快排前k项 O(klogk) = O(n + klogk)
- 在一个数据流中,找第 K 大的数 [Leetcode题目]
解法: 最小堆,最小堆的堆顶就是第 K 大的数,插入O(lgk), 查询O(1)
- -
问题2 - 找最大的 K 个数:
- 在一个整数数组中,找最大的 K 个数
解法:同问题1.1解答
- 在一个数据流中,找最大 K 个数
解法: 同问题1.2解答,插入O(lgk), 如果查询不需要保持顺序,则O(n),可以用java的iterator实现;如果查询需要保持顺序,则先无序的拿出,然后排序,即O(klgk)
问题3 - 找最高频的 K 个数
Leetcode题解
刷题心得,记录
361 声望
98 粉丝
推荐阅读
【已结束】SegmentFault 思否面试闯关挑战赛!
“金三银四”求职季到啦,能力自查与提升迫在眉睫🔥 社区专栏与技术问答联合推出: SegmentFault 思否面试闯关挑战赛 本期挑战赛于 3 月 7 日 正式开赛,共设四重关卡,不限技术方向。快来和小伙伴们一起主动追击,...
SegmentFault思否赞 14阅读 13.9k评论 17
疫情已过,2023 我的前端面试记录
顺利入职。把我最近找工作的心得记录下来。工作交接确定 lastday整理手头工作,相关对接人、交接人放文档中工作交接过渡阶段。做好被咨询者,该拉人拉人,该拉群拉群平时沟通顺畅的同事如果没有 WX 可以加一个属...
linong赞 11阅读 1.2k
算法可视化:一文弄懂 10 大排序算法
在本文中,我们将通过动图可视化加文字的形式,循序渐进全面介绍不同类型的算法及其用途(包括原理、优缺点及使用场景)并提供 Python 和 JavaScript 两种语言的示例代码。除此之外,每个算法都会附有一些技术说...
破晓L赞 8阅读 1.1k
简历上的项目,需要这样描述才有亮点!
每每准备面试,总有些小伙子甩出自己的豆包项目,不是Xxx管理系统,就是某某自动化平台。就像这几年自己的经历都放在 CRUD 编写上了,走的那是加班的道,干的都是体力的活。
小傅哥赞 4阅读 1.2k
记一次旁观他人的技术面试
最近没有什么面试经历,上一次面试已经是将近一年前了,所以没办法有效回忆到当时面试的状况。好在近期肉大(@meathill)有在做一个模拟面试的选题,就可以另辟蹊径写一篇旁观其他人面试的文章。
陟上晴明赞 4阅读 993
00 后清华学霸用 AI 打败大气层「魔法攻击」,还原宇宙真面貌
内容一览:从诞生的那一刻起,人类对宇宙的探索就从未停止。如今,这门古老的科学再次借助 AI 获得加速度。本文将展示 AI 与天文学的结合擦出了怎样的火花。关键词:AI 天文图像 弱引力透镜
超神经HyperAI阅读 86.2k
【TVM 学习资料】快速入门:编译深度学习模型
这个例子展示了如何用 Relay Python 前端构建神经网络,并为装有 TVM 的 NVIDIA GPU 生成 runtime 库。注意,构建 TVM 需要启用 CUDA 和 LLVM。
超神经HyperAI阅读 34.3k
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。