LeetCode实战:合并K个排序链表
题目英文
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
Example:
Input:
[1->4->5,1->3->4,2->6
]
Output: 1->1->2->3->4->4->5->6
题目中文
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。
示例:
输入:
[1->4->5,1->3->4,2->6
]
输出: 1->1->2->3->4->4->5->6
算法实现
第一种方式:每次选择值最小的节点插入到链表中。
/*** Definition for singly-linked list.* public class ListNode {* public int val;* public ListNode next;* public ListNode(int x) { val = x; }* }*/
public class Solution {public ListNode MergeKLists(ListNode[] lists) {int len = lists.Length;if (len == 0)return null;ListNode pHead = new ListNode(int.MaxValue);ListNode temp = pHead;while (true){bool isBreak = true;int min = int.MaxValue;int minIndex = 0;for (int i = 0; i < len; i++){if (lists[i] != null){if (lists[i].val < min){minIndex = i;min = lists[i].val;}isBreak = false;}}if (isBreak){break;}temp.next = lists[minIndex];temp = temp.next;lists[minIndex] = lists[minIndex].next;}temp.next = null;return pHead.next; }
}
第二种方式:利用 合并两个有序链表 的方法。
/*** Definition for singly-linked list.* public class ListNode {* public int val;* public ListNode next;* public ListNode(int x) { val = x; }* }*/
public class Solution {public static ListNode MergeTwoLists(ListNode l1, ListNode l2) {ListNode pHead = new ListNode(int.MaxValue);ListNode temp = pHead;while (l1 != null && l2 != null){if (l1.val < l2.val){temp.next = l1;l1 = l1.next;}else{temp.next = l2;l2 = l2.next;}temp = temp.next;}if (l1 != null)temp.next = l1;if (l2 != null)temp.next = l2;return pHead.next;}public ListNode MergeKLists(ListNode[] lists) {if (lists.Length == 0)return null;ListNode result = lists[0];for (int i = 1; i < lists.Length; i++){result = MergeTwoLists(result, lists[i]);}return result;}
}
实验结果
第一种方式的提交结果:
- 状态:通过
- 131 / 131 个通过测试用例
- 执行用时:772 ms
第二种方式的提交结果:
- 状态:通过
- 131 / 131 个通过测试用例
- 执行用时:332 ms
相关图文:
- LeetCode实战:两数之和
- LeetCode实战:删除链表的倒数第N个节点
- LeetCode实战:合并两个有序链表
- LeetCode实战:两两交换链表中的节点
- LeetCode实战:旋转链表
- LeetCode实战:相同的树
- LeetCode实战:对称二叉树
- LeetCode实战:二叉树的最大深度
- LeetCode实战:搜索二维矩阵
- LeetCode实战:将有序数组转换为二叉搜索树
- 资料分享:数学建模资料分享 – 图论部分
- 资料分享:数学建模资料分享 – 神经网络部分
- 如何利用 C# 实现 K 最邻近算法?
- 如何利用 C# 实现 K-D Tree 结构?
- 如何利用 C# + KDTree 实现 K 最邻近算法?
- 如何利用 C# 对神经网络模型进行抽象?
- 如何利用 C# 实现神经网络的感知器模型?
- 如何利用 C# 实现 Delta 学习规则?
- 如何利用 C# 实现 误差反向传播 学习规则?
- 如何利用 C# 爬取带 Token 验证的网站数据?
- 如何利用 C# 向 Access 数据库插入大量数据?
- 如何利用 C# + Python 破解猫眼电影的反爬虫机制?
LeetCode实战:合并K个排序链表相关推荐
- LeetCode 23. 合并K个排序链表(优先队列)
文章目录 1. 题目信息 2. 思路 3. 代码 1. 题目信息 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例:输入: [1->4->5,1->3-& ...
- leetcode 23. 合并K个排序链表
题目 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1 ...
- 刻意练习:LeetCode实战 -- Task12. 合并K个排序链表
背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...
- LeetCode题解-23 合并K个排序链表 Hard
合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [1->4->5,1->3->4,2->6 ] 输出: 1->1->2 ...
- 【LeetCode刷题】23. 合并K个排序链表
23. 合并K个排序链表 题目 思路1 - 普通思路 思路2 - 逐一比较 思路3 – 逐一两两合并 思路4 – 优先级队列(小顶堆) 思路5 – 分治策略 题目 链接:23. 合并K个排序链表 合并 ...
- [leetcode-JavaScript]---23、合并K个排序链表
题目 合并 k 个排序链表,返回合并后的排序链表 示例: 输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4-& ...
- [剑指offer][JAVA]面试题[第23题][合并K个排序链表][分治][优先队列]
[问题描述]23.合并K个排序链表 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [1->4->5,1->3->4,2->6 ] ...
- 超详细!动画图解「合并 K 个排序链表」
点击蓝色"五分钟学算法"关注我哟 加个"星标",天天中午 12:15,一起学算法 作者 | 李威 来源 | 五分钟学算法 今天分享的题目来源于 LeetCode ...
- 合并k个排序链表(Python实现)
题目描述: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1-&g ...
最新文章
- I00039 亲密数(Amicable numbers)
- git误删文件找回方法/git版本回退方法
- C语言程序设计 数组,结构体和指针练习题
- [html] 举例说明HTML5出来后,有哪些HTML标签被弃用了?
- DB2常用函数:字符串函数
- 20140524数据库课笔记
- Android编程之DialogFragment源码详解(一)
- Ubuntu 12.04 更新重启无法进入桌面 -转
- 数值优化(二):信赖域方法与二维空间法
- CodeJock 实现MFC换肤
- [3]、Swagger——解决前后端打架问题
- IOS-Tom猫小游戏实现
- 玩转树莓派——游戏主机模拟器
- 谷歌浏览器xpath插件的安装
- 广西大学计算机与电子信息学院李智,赵进创,广西大学 计算机与电子信息学院...
- win7 eclipse调用虚拟机ubuntu部署的hadoop2.2.0伪分布(1)
- 男宝女宝如厕训练有不同,你做对了吗?
- Java课设设计-家庭财务管理系统
- matlab画banana函数,MATLAB 必须知道的基本操作.m
- Ubuntu 16.04 LTS 安装libvips出现”Package vips was not found in the pkg-config search path”