算法日常・每日刷题--<优先级队列>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); */

相关新闻

深度解码悦龄生活:谁在为3000万长辈修筑数字时代的“安全底座”?

深度解码悦龄生活:谁在为3000万长辈修筑数字时代的“安全底座”?

让长辈享受美好生活前言当我们在各类APP里熟练地打车、点外卖、刷短视频时,一个容易被折叠的现实是:家里的长辈,却常常在面对飞速迭代的智能手机时手足无措。面对复杂的弹窗、难辨真假的链接,他们仿佛面对着一堵透明的墙。长久以来…

2026/10/1 4:16:10 阅读更多 →
# MOE基于片段的药物设计(一):Scaffold Replacement——如何在保留取代基空间关系的同时替换核心骨架?

# MOE基于片段的药物设计(一):Scaffold Replacement——如何在保留取代基空间关系的同时替换核心骨架?

在先导化合物优化过程中,我们经常会遇到这样一个问题:一个分子的两端已经能够与蛋白形成不错的相互作用,但中间的核心骨架并不理想。我们希望保留原有的关键取代基,同时寻找一个新的核心结构,以探索新的化学空间。这就…

2026/10/7 15:31:20 阅读更多 →
如何提高 MySQL 的并发查询能力?全方位实战优化指南

如何提高 MySQL 的并发查询能力?全方位实战优化指南

前言 不少开发会遇到这样的现象:单独执行一条SQL速度很快,但是压测并发量上来之后,接口响应变慢、数据库CPU持续走高、连接数不断上涨,甚至出现查询超时。 很多人第一反应就是优化SQL,但单纯优化语句只能解决一部分问题…

2026/10/12 16:50:36 阅读更多 →

最新新闻

UE5 C++ JSON读写:FJsonObject与FJsonValue完全解析

UE5 C++ JSON读写:FJsonObject与FJsonValue完全解析

最近在某个项目的存档模块里折腾 JSON 读写,UE5 的 C 侧 API 绕来绕去,最后发现核心就两个类:FJsonObject和FJsonValue。如果你也在跟教程学 UE5 C 的 JSON 部分,到了第 61-3 节这里刚好进入最绕的一段——类继承链、各种 Value 子…

2026/10/13 13:37:18 阅读更多 →
低代码平台定制化能力边界:从需求分级到选型落地

低代码平台定制化能力边界:从需求分级到选型落地

低代码/无代码平台这两年风头很猛,几乎每个做企业服务的团队都在聊。但落到实际选型时,大家心里其实都悬着一个问题:这种拖拖拽拽就能搭出来的系统,到底能不能扛住企业里那些“奇奇怪怪”的定制化需求?我接触过不少项目…

2026/10/13 13:37:18 阅读更多 →
智能体技能库实战:从函数堆砌到可编排技能体系

智能体技能库实战:从函数堆砌到可编排技能体系

那段时间我正好在做一个内部数据分析Agent,功能倒是不复杂,但技能函数越堆越多,从最初的十几个一路涨到八十多个。真正让我警醒的是一次线上失误:模型在众多工具里挑了一个相近但错误的函数去执行,把周报数据算成了残缺…

2026/10/13 13:37:18 阅读更多 →
数据复制实战:HDFS副本策略、机架感知与DistCp一致性校验

数据复制实战:HDFS副本策略、机架感知与DistCp一致性校验

做大数据这些年,我越来越确信一件事:分布式系统里“数据复制”才是那个平时看不见、出事全靠它的底层保命机制。节点掉盘、误删目录、磁盘静默损坏、跨集群迁移容灾,每一件都绕不开“复制”两个字。这篇文章想把数据复制的核心技术拆开讲清楚…

2026/10/13 13:37:18 阅读更多 →
CSAPP第九章精要:虚拟内存机制与malloc实现原理

CSAPP第九章精要:虚拟内存机制与malloc实现原理

1. 为什么学完CSAPP第九章,我反而更不敢写malloc了?刚带完一届某高校系统编程实训课,有个现象特别有意思:学生把《深入理解计算机系统》(CSAPP)第九章“虚拟存储器”从9.1读到9.5,笔记记得密密麻…

2026/10/13 13:37:18 阅读更多 →
入侵检测与入侵防御:IDS和IPS的区别、原理与部署实践

入侵检测与入侵防御:IDS和IPS的区别、原理与部署实践

入侵检测和入侵防御这两个概念,从名字上只差两个字,但真实网络里的差别相当大。很多刚接触安全建设的人,习惯把二者当成“功能差不多的同类设备”,结果通常到部署那一刻才反应过来:一个只能看,一个真的动手…

2026/10/13 13:36:17 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →