恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

算法日常・每日刷题--<优先级队列>2

  • 首页
  • 资讯中心
  • /
  • 算法日常・每日刷题--<优先级队列>2

相关资讯

整理开发人员容易忽略的问题:个人微信API开发有哪些常见误区? 2026/8/14 2:44:30
macOS Big Sur降级Catalina实战指南:原理、风险与三种安全方案详解 2026/8/14 2:44:30
Skillsbase:构建个人技能仓库,告别知识碎片化 2026/8/14 2:44:30

最新资讯

贡献reverse_markdown:参与开源项目的完整指南
Mage-VL 多模态模型实战指南:从克隆仓库到跑通视频理解与流式推理
深入理解Ring-2.6-1T的异步强化学习:IcePop算法如何提升训练效率
Bow测试策略:用Laws和Generators确保代码正确性
剪口播视频总在删错句?chengfeng-videocut-skills 入门:让 AI 先听懂语义再下刀
WinDynamicDesktop自定义动态桌面主题:从原理到实战制作全指南

今日推荐

青岛煜鹏网站建设公司如何帮助传统企业实现数字化转型破局与增长路径
内蒙古生产建设兵团四师三十四团知青网站:承载岁月记忆与青春荣耀的精神家园
梅州市住房与城乡建设局官网:获取权威建筑信息、政策解读与民生服务的最佳平台入口

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

算法日常・每日刷题--<优先级队列>2

发布时间:2026/8/14 2:49:32
算法日常・每日刷题--<优先级队列>2 LCR 059. 数据流中的第 K 大元素 - 力扣LeetCodeLCR 059. 数据流中的第 K 大元素 - 设计一个找到数据流中第 k 大元素的类class。注意是排序后的第 k 大元素不是第 k 个不同的元素。请实现 KthLargest 类 * KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。 * int add(int val) 将 val 插入数据流 nums 后返回当前数据流中第 k 大的元素。 示例输入[KthLargest, add, add, add, add, add][[3, [4, 5, 8, 2]], [3], [5], [10], [9], [4]]输出[null, 4, 5, 5, 8, 8]解释KthLargest kthLargest new KthLargest(3, [4, 5, 8, 2]);kthLargest.add(3); // return 4kthLargest.add(5); // return 5kthLargest.add(10); // return 5kthLargest.add(9); // return 8kthLargest.add(4); // return 8 提示 * 1 k 104 * 0 nums.length 104 * -104 nums[i] 104 * -104 val 104 * 最多调用 add 方法 104 次 * 题目数据保证在查找第 k 大元素时数组中至少有 k 个元素 注意本题与主站 703 题相同 https://leetcode.cn/problems/kth-largest-element-in-a-stream/ [https://leetcode.cn/problems/kth-largest-element-in-a-stream/]https://leetcode.cn/problems/jBjn9C/一、题目描述题目要求设计一个可以持续接收数据流、快速返回第 K 大元素的类KthLargest注意定义将所有数字降序排序后位于第 k 个位置的数允许存在重复数字。 需要实现两个核心方法构造函数KthLargest(int k, vectorint nums)给定 k 和初始数字流完成初始化int add(int val)新增一个数字到数据流返回当前全局第 k 大的值。示例输入k3初始数组[4,5,8,2]依次调用add(3)、add(5)、add(10)、add(9)、add(4)输出4,5,5,8,8解释初始数据流[4,5,8,2]前 3 大数字[4,5,8]第 3 大为 4添加 3 后前 3 大不变返回 4添加 5 后前 3 大[5,5,8]返回 5添加 10 后前 3 大[5,8,10]返回 5添加 9 后前 3 大[8,9,10]返回 8添加 4 后前 3 大不变返回 8。二,最优解法固定容量小根堆最小堆核心原理我们只需要全局最大的 k 个数字不需要存储全部数据使用小根堆堆内最多保存 k 个元素堆的特性堆顶是堆中最小值堆内存放当前前 k 大数字堆顶天然就是全局第 k 大元素。执行流程初始化阶段遍历所有初始数字逐个入堆若堆长度超过 k弹出堆顶最小值该数不属于前 k 大add 新增数字将新数字压入堆若堆大小 k弹出堆顶最小元素直接返回堆顶即为当前第 k 大值。为什么不用大根堆如果使用大根堆会存储全部数据流空间复杂度O(n)且每次取第 k 大需要遍历堆效率低下。小根堆仅存 k 个元素空间、时间双重最优。class KthLargest { priority_queueint ,vectorint,greaterintheap; int _k; public: KthLargest(int k, vectorint nums) { _kk; for(auto e:nums) { heap.push(e); if(heap.size()_k) heap.pop(); } } int add(int val) { heap.push(val); if(heap.size()_k) heap.pop(); return heap.top(); } }; /** * Your KthLargest object will be instantiated and called as such: * KthLargest* obj new KthLargest(k, nums); * int param_1 obj-add(val); */

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号