算法面试——堆与优先队列:前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/7/24 2:19:08 阅读更多 →
ChatGPT邮件日历插件实战:从权限配置到批量处理技巧

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

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

2026/7/24 2:19:08 阅读更多 →
语义化主题 Token:品牌色、深浅色与组件一致性

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

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

2026/7/24 2:19:08 阅读更多 →

最新新闻

TI TMUXHS4212高速开关评估模块实战:信号完整性测试与多协议兼容性设计

TI TMUXHS4212高速开关评估模块实战:信号完整性测试与多协议兼容性设计

1. 项目概述与核心价值在当今追求极致性能和紧凑设计的硬件世界里,高速数字接口的灵活切换能力变得至关重要。想象一下,你的设备只有一个USB Type-C接口,却需要同时或分时连接高速存储、高清显示和高速网络,这背后就需要一个“交通…

2026/7/24 2:27:10 阅读更多 →
OSS ChatGPT WebUI v4:从对话管理到AI工程化实践指南

OSS ChatGPT WebUI v4:从对话管理到AI工程化实践指南

最近在折腾各种 AI 工具时,我发现了一个挺有意思的现象:很多开发者其实并不满足于直接使用 ChatGPT 的官方界面。他们要么需要更灵活的对话管理,要么想把 AI 能力集成到自己的项目里,要么就是想找一个能自由部署、不受官方限制的替…

2026/7/24 2:27:10 阅读更多 →
OpenRouter大语言模型API成本优化实战指南

OpenRouter大语言模型API成本优化实战指南

在AI应用开发中,调用大语言模型API的成本控制一直是开发者关注的重点。特别是对于需要频繁调用GPT-4、Claude等高端模型的场景,直接使用官方API往往面临较高的费用压力。本文将介绍如何通过OpenRouter这一聚合平台来优化成本,同时保持模型性能…

2026/7/24 2:27:10 阅读更多 →
Substack推出AI检测工具:识别Claudefishing与AI生成内容

Substack推出AI检测工具:识别Claudefishing与AI生成内容

Substack 近期正式推出了 AI 检测工具,旨在帮助平台用户识别以“Claudefishing”为代表的 AI 生成内容。这类内容通常模仿真实作者的写作风格或身份,诱导读者误认为是人工创作,对内容可信度构成潜在威胁。该工具面向 Substack 作者和读者开放…

2026/7/24 2:27:10 阅读更多 →
OpenClaw管理面板与大模型集成实践指南

OpenClaw管理面板与大模型集成实践指南

1. OpenClaw管理面板与大模型集成实践最近在折腾OpenClaw的web管理面板,经过一番调试终于跑通了基础功能。作为一个支持多AI Agent框架的可视化管理工具,ClawPanel确实为OpenClaw和Hermes Agent提供了相当完善的管理能力。不过最让我兴奋的是&#xff0c…

2026/7/24 2:27:10 阅读更多 →
大模型智能体评估:从功能验证到可信测试

大模型智能体评估:从功能验证到可信测试

1. 大模型智能体评估的现状与挑战在人工智能领域,大模型智能体正从实验室走向实际应用,但评估这些智能体的表现却面临诸多挑战。传统NLP任务中,我们有BLEU、ROUGE等明确指标,但智能体的评估要复杂得多——它们不仅要生成文本&…

2026/7/24 2:26:10 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻