算法日常・每日刷题--<链表>4

发布时间:2026/9/16 22:56:01

算法日常・每日刷题--<链表>4 LCR 078. 合并 K 个升序链表 - 力扣LeetCodeLCR 078. 合并 K 个升序链表 - 给定一个链表数组每个链表都已经按升序排列。请将所有链表合并到一个升序链表中返回合并后的链表。 示例 1输入lists [[1,4,5],[1,3,4],[2,6]]输出[1,1,2,3,4,4,5,6]解释链表数组如下[ 1-4-5, 1-3-4, 2-6]将它们合并到一个有序链表中得到。1-1-2-3-4-4-5-6示例 2输入lists []输出[]示例 3输入lists [[]]输出[] 提示 * k lists.length * 0 k 10^4 * 0 lists[i].length 500 * -10^4 lists[i][j] 10^4 * lists[i] 按 升序 排列 * lists[i].length 的总和不超过 10^4 注意本题与主站 23 题相同 https://leetcode.cn/problems/merge-k-sorted-lists/ [https://leetcode.cn/problems/merge-k-sorted-lists/]https://leetcode.cn/problems/vvXgSW/题目描述给定一个链表数组每个链表都已经按升序排列。 请将所有链表合并到一个升序链表中返回合并后的链表。示例 输入lists [[1,4,5],[1,3,4],[2,6]]输出[1,1,2,3,4,4,5,6]核心难点多条有序链表多路归并如何高效持续拿到全局最小值节点。思路分析多条升序链表每一条链表头部都是当前链表最小值。我们需要不断从所有链表头部选出全局最小节点接入结果链表。 暴力思路每次遍历全部链表头寻找最小值时间复杂度 \(O(kN)\)效率低下。优化方案小根堆优先队列将所有非空链表的头节点放入小根堆堆自动维护堆顶为全局最小值循环取出堆顶最小节点接入结果链表如果取出的节点存在后继节点将后继节点推入堆堆为空时全部节点处理完毕返回合并链表。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ #includequeue class Solution { public: struct cmp { bool operator()(const ListNode* l1, const ListNode* l2) { // priority\_queue小根堆规则返回truel1放下面 return l1-val l2-val; } } ; ListNode* mergeKLists(vectorListNode* lists) { int nlists.size(); //创建小根堆 priority_queueListNode*, vectorListNode*,cmp minHeap; //让所有的头节点进入小根堆 for(auto l :lists) if(l) minHeap.push(l); //合并k个有序链表 ListNode*retnew ListNode(0); ListNode*prevret; while(!minHeap.empty()) { ListNode* tminHeap.top(); minHeap.pop(); prev-nextt; prevt; if(t-next) minHeap.push(t-next); } prevret-next; delete ret; return prev; } };
延伸阅读

更多相关文章

2026/9/16 22:55:04

零售业连锁收银软件厂家怎么选?四大品牌深度横评

在零售和餐饮行业数字化转型的浪潮中,收银系统早已不再是简单的“算账工具”,而是关乎门店运营效率、数据资产沉淀乃至生存发展的核心基础设施。很多创业者在选址装修时豪掷千金,却在软件选型上草草了事,结果开业后才发现系统卡顿…

2026/9/16 22:53:02

编程智能体重构软件开发流程:从需求到合并的实战指南

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

2026/9/16 22:53:02

Docker多阶段构建实战:从1GB镜像到几十MB的优化指南

说实话,我第一次在团队看到同事上传的镜像时,差点没绷住。一个内部小工具,代码量不到两千行,打出来的镜像 1.2GB。问了下 Dockerfile 内容,果然还是老套路:FROM ubuntu,装一堆编译依赖&#xff…

2026/9/16 22:53:02

STM32共享充电宝系统设计:从本地计费到断网续传

简介:本资源是一套基于STM32的共享充电宝高分毕业设计项目,面向计算机、通信、自动化及人工智能等相关专业学生与教师,适用于课程设计、大作业及毕业设计实践。项目完整实现充电宝主控逻辑、电池管理、通信交互与状态显示等核心功能&#xff…

2026/9/16 22:48:01

AI工具链死亡解剖:OpenClaw的协议幻觉与可解释性困局

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

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/16 0:04:09

PHP源码部署实战:从环境配置到运行情侣游戏全攻略

简介:这是一套面向情侣互动场景的PHP完整源码,集成情侣飞行棋、真心话大冒险、情趣骰子等玩法,并内置完整分销制度,可自定义多种返佣比例,源码完全开源无加密,支持微信无感自动授权登录与第三方授权&#x…

2026/9/16 22:55:57

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/15 21:31:11

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码