算法面试——堆与优先队列:前K个高频元素、合并K个链表、数据流中位数
堆优先队列常用于需要反复获取最大/最小值的场景。Java 中用 PriorityQueue。一、前 K 个高频元素publicint[]topKFrequent(int[]nums,intk){MapInteger,IntegerfreqnewHashMap();for(intnum:nums)freq.put(num,freq.getOrDefault(num,0)1);// 小顶堆保留频率最高的 k 个PriorityQueueIntegerpqnewPriorityQueue((a,b)-freq.get(a)-freq.get(b));for(intkey:freq.keySet()){pq.offer(key);if(pq.size()k)pq.poll();}int[]resultnewint[k];for(intik-1;i0;i--)result[i]pq.poll();returnresult;}二、合并 K 个升序链表publicListNodemergeKLists(ListNode[]lists){PriorityQueueListNodepqnewPriorityQueue((a,b)-a.val-b.val);for(ListNodenode:lists){if(node!null)pq.offer(node);}ListNodedummynewListNode(0);ListNodecurdummy;while(!pq.isEmpty()){ListNodenodepq.poll();cur.nextnode;curcur.next;if(node.next!null)pq.offer(node.next);}returndummy.next;}三、数据流中位数classMedianFinder{privatePriorityQueueIntegermaxHeap;// 左半部分大顶堆privatePriorityQueueIntegerminHeap;// 右半部分小顶堆publicMedianFinder(){maxHeapnewPriorityQueue((a,b)-b-a);minHeapnewPriorityQueue();}publicvoidaddNum(intnum){if(maxHeap.isEmpty()||nummaxHeap.peek()){maxHeap.offer(num);}else{minHeap.offer(num);}// 平衡两个堆的大小if(maxHeap.size()minHeap.size()1){minHeap.offer(maxHeap.poll());}elseif(minHeap.size()maxHeap.size()){maxHeap.offer(minHeap.poll());}}publicdoublefindMedian(){if(maxHeap.size()minHeap.size()){returnmaxHeap.peek();}return(maxHeap.peek()minHeap.peek())/2.0;}} 觉得有用的话点赞 关注【张老师技术栈】吧每周更新 Java/Python/MySQL 实战干货不让你白来。

相关新闻

AutoResearch与Gemini Agent架构的协同设计与实现

AutoResearch与Gemini Agent架构的协同设计与实现

1. 项目概述:AutoResearch与Gemini Agent架构的协同设计 Karpathy的AutoResearch项目最近在开发者社区引发了广泛讨论,这个开源项目让AI智能体能够自主进行LLM训练实验。当我第一次看到这个设计时,立刻意识到它与Google Gemini的三层Agent架构…

2026/10/2 9:03:43 阅读更多 →
ChatGPT邮件日历插件实战:从权限配置到批量处理技巧

ChatGPT邮件日历插件实战:从权限配置到批量处理技巧

1. 先搞清楚它能帮你解决邮件和日历里的哪些具体问题如果你每天要处理大量邮件、安排会议、跟踪任务进度,这个 ChatGPT 插件组合最直接的价值是:把零散的邮件内容、日历事件和待办事项,通过自然语言对话整合成可执行的计划表。它不是简单地把…

2026/9/29 21:33:40 阅读更多 →
语义化主题 Token:品牌色、深浅色与组件一致性

语义化主题 Token:品牌色、深浅色与组件一致性

先描述一种熟悉的腐烂过程:第一个页面里写了 #FF6B35,第二个页面复制了它,第十个页面里有人凭记忆写成了 #FF6835。半年后产品说"填充词的橙色微调一下",你打开全局搜索,发现这个色值有四种写法、三个变体&a…

2026/9/26 12:37:16 阅读更多 →

最新新闻

OpenRig模拟驾驶舱DIY指南:铝型材框架与FOV计算实战

OpenRig模拟驾驶舱DIY指南:铝型材框架与FOV计算实战

1. 为什么想折腾一套openrig如果你经常逛硬件社区,会发现“rig”这个词出现频率极高,老外管自己组装的电脑、驾驶舱、直播台都叫rig。我最近花了三个晚上重新折腾了一套“openrig”,说白了就是一套完全开放式设计、图纸和孔位逻辑都摆在外面、…

2026/10/4 18:09:09 阅读更多 →
Codex CLI + Ace Data Cloud:基于MCP协议的AI工作台实战

Codex CLI + Ace Data Cloud:基于MCP协议的AI工作台实战

1. 项目概述:为什么一个命令行工具值得被重新定义为“工作台”Codex CLI 不是新面孔——它最早作为 GitHub 官方推出的轻量级代码理解辅助工具出现,主打本地化、低延迟、可嵌入的代码上下文解析能力。但过去两年,它的角色正在发生质变&#x…

2026/10/4 18:09:09 阅读更多 →
Qwen Image 2.1工程落地:6步加速打造生产级图像生成工作流

Qwen Image 2.1工程落地:6步加速打造生产级图像生成工作流

1. 这不是“又一个图像模型评测”,而是实打实的工程落地手记Qwen Image 2.1发布后,我第一时间拉了模型权重、搭了本地推理环境,但真正卡住我的不是模型本身,而是它怎么“活”进日常工作中——不是跑个demo截图发朋友圈&#xff0c…

2026/10/4 18:09:09 阅读更多 →
DEiT实战指南:中小数据集上高效训练图像分类Transformer

DEiT实战指南:中小数据集上高效训练图像分类Transformer

简介:DEiT 是由 Facebook 在 2020 年提出的高效图像分类 Transformer 模型,通过知识蒸馏与训练策略改进,消除了 Transformer 难以训练的痛点,在仅使用 ImageNet 数据、4 块 GPU 训练三天的条件下就达到了 SOTA 水平。该压缩包围绕…

2026/10/4 18:09:09 阅读更多 →
2026年AI大模型推理平台七家对比:模型覆盖、定价、速度与合规四维测评

2026年AI大模型推理平台七家对比:模型覆盖、定价、速度与合规四维测评

2026 年年中这轮盘点看下来,主流 AI 大模型推理平台已经在四个维度上形成清晰分工:模型覆盖度、定价、速度、合规。整体格局可以概括为——OpenRouter 和 DeepInfra 偏模型广度,Fireworks、Together、Groq 偏推理性能,国内平台在访…

2026/10/4 18:09:09 阅读更多 →
MRAM取代Flash与EEPROM:STM32掉电数据保存实战方案

MRAM取代Flash与EEPROM:STM32掉电数据保存实战方案

做工业设备的嵌入式开发,最绕不开的老大难就是数据掉电保存。EEPROM写寿命有限,Flash要先擦后写又慢得让人心焦,特别是处理高频参数记录和故障瞬间保存这种需求,总得在容量、寿命、速度之间反复妥协。这两年我在几个项目里改用 Ev…

2026/10/4 18:08:09 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/4 11:40:45 阅读更多 →
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/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练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/3 9:42:36 阅读更多 →