当前位置: 首页 > news >正文

算法面试——堆与优先队列:前K个高频元素、合并K个链表、数据流中位数

堆(优先队列)常用于需要反复获取最大/最小值的场景。Java 中用 PriorityQueue。

一、前 K 个高频元素

publicint[]topKFrequent(int[]nums,intk){Map<Integer,Integer>freq=newHashMap<>();for(intnum:nums)freq.put(num,freq.getOrDefault(num,0)+1);// 小顶堆,保留频率最高的 k 个PriorityQueue<Integer>pq=newPriorityQueue<>((a,b)->freq.get(a)-freq.get(b));for(intkey:freq.keySet()){pq.offer(key);if(pq.size()>k)pq.poll();}int[]result=newint[k];for(inti=k-1;i>=0;i--)result[i]=pq.poll();returnresult;}

二、合并 K 个升序链表

publicListNodemergeKLists(ListNode[]lists){PriorityQueue<ListNode>pq=newPriorityQueue<>((a,b)->a.val-b.val);for(ListNodenode:lists){if(node!=null)pq.offer(node);}ListNodedummy=newListNode(0);ListNodecur=dummy;while(!pq.isEmpty()){ListNodenode=pq.poll();cur.next=node;cur=cur.next;if(node.next!=null)pq.offer(node.next);}returndummy.next;}

三、数据流中位数

classMedianFinder{privatePriorityQueue<Integer>maxHeap;// 左半部分(大顶堆)privatePriorityQueue<Integer>minHeap;// 右半部分(小顶堆)publicMedianFinder(){maxHeap=newPriorityQueue<>((a,b)->b-a);minHeap=newPriorityQueue<>();}publicvoidaddNum(intnum){if(maxHeap.isEmpty()||num<=maxHeap.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 实战干货,不让你白来。

http://www.jsqmd.com/news/1251498/

相关文章:

  • 2026 年福山优秀的高羊茅草坪基地供货商怎么联系,揭秘!普通人却忽略的草坪基地惊人秘密-福荣草坪种植基地 - 品质体验官
  • DA3-GIANT单目深度估计技术解析与应用
  • Gemini 3.6 Flash与3.5 Flash Lite:轻量级AI模型选型与API实战指南
  • Spring AI 改造老项目:从依赖地狱到流式超时的 4 个实战解法
  • 2026 年新消息:浏阳值得关注的公园廊架厂家综合实力解析,别再乱买!这套设计让公园景观翻倍-冠煌金属 - 行业推荐官【认证】
  • MSPM0安全启动机制:从CRC校验到SWD策略的嵌入式固件防护实践
  • SPI简述
  • 2026哈尔滨板车物流到上海物流专线哪家好?哈尔滨悦达物流公司口碑推荐 - mobible
  • 【论文阅读】WiscKey
  • AI提示词框架实战:ICIO与CRISPE提升大模型效能
  • 万国上海2026年7月最新售后网点地址与全国统一客服热线正式公示通知 - 万国中国官方服务中心
  • 2026 年更新:川汇值得关注的屋面找坡陶粒直销厂家哪家专业,别再瞎找了!屋面修复的秘密武器曝光-旭发陶粒厂 - 行业推荐【认证官】
  • GICP点云配准技术:原理、实现与优化实践
  • 工商管理专业学生可以考哪些证书?
  • 7月决议悬念升温,联储内部信号出现分化下的AI政策预测框架
  • AI Agent工程化实践:从模型开发到系统稳定性的关键挑战
  • TVP5151视频解码芯片硬件设计与I2C配置全解析
  • BAML框架实战:LLM调用层标准化迁移与智能体系统优化
  • 2026黑龙江全国长途物流到吉林物流专线哪家好|哈尔滨悦达物流公司口碑推荐 - mobible
  • 锂离子电池SOH预测:RNN、LSTM与GRU对比实践
  • 宁德本地防水补漏精选TOP5推荐:正规漏水检测维修公司上门师傅推荐:厕所/棚顶/屋面/飘窗/阳台/地下室/厨房渗漏水精准测漏维修(2026最新) - 即刻修防水
  • 第 14 篇:AI 只会聊天?教你千问点奶茶能力的底层技术(Java+AI落地实战系列 | Function Calling 完整实现,从问答升级为业务执行助手)
  • AI PPT一改就崩?MemSlides登顶抱抱脸,让Agent记住你的改稿习惯
  • 2026年沈阳高价回收劳力士手表,(185-3117-2838)铁西区北二中路6号赵掌柜二奢实体店回收爱马仕包包、劳力士手表、江诗丹顿手表、迪奥包包、梵克雅宝首饰 - 优企甄选
  • 基于 Spring 事务同步机制的事务后置动作收集器 Starter 实践
  • 2026年亚马逊气候友好承诺认证怎么办理?看完这篇就知道 - 品牌排行榜
  • Prompt 模板 Git 化后,我们的 Java AI 评测准确率提升了 38%
  • 工控必备Shell脚本开发:自动挂载、日志归档、看门狗、程序守护脚本
  • 【紧急预警】通义千问多模态模型在OCR+逻辑推理场景存在隐性幻觉!资深NLP工程师已定位3类高危失效模式
  • 深度学习在环境声音分类中的应用与实践