LeetCode Merge k Sorted Lists (链表)
题意
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
将K个排好序的链表合并成一个
解法
和之前合并两个有序链表那题不同,那题用的是两个指针来分别记录两个链表中的位置,将小的那个插入新链表然后指针右移,有点像归并排序时用到的方法。这题如果用K个指针来记录的话,每次需要找出最小的那个值,比较麻烦,所以采用的优先队列,首先将所有链表的第一个值入队,然后每次将值最小的一个出队插入新链表里,再将这个元素的下一个元素入队。
class Solution
{
struct Node
{
int val;
ListNode * next = nullptr;
bool operator <(const Node & r) const
{
return val > r.val;
}
};
public:
ListNode* mergeKLists(vector<ListNode*>& lists)
{
int count = lists.size();
priority_queue<Node> que;
for(int i = 0;i < lists.size();i ++)
{
Node temp;
if(lists[i])
{
temp.val = lists[i] -> val;
temp.next = lists[i] -> next;
que.push(temp);
}
}
ListNode * head = nullptr;
ListNode * cur = nullptr;
while(!que.empty())
{
ListNode * node = new ListNode(0);
Node poped = que.top();
que.pop();
node -> val = poped.val;
node -> next = poped.next;
if(poped.next)
{
Node temp;
temp.val = poped.next -> val;
temp.next = poped.next -> next;
que.push(temp);
}
if(head == nullptr)
{
head = node;
cur = node;
}
else
{
cur -> next = node;
cur = cur -> next;
}
}
return head;
}
};
LeetCode Merge k Sorted Lists (链表)的更多相关文章
- LeetCode: Merge k Sorted Lists 解题报告
Merge k Sorted Lists Merge k sorted linked lists and return it as one sorted list. Analyze and descr ...
- [LeetCode] Merge k Sorted Lists 合并k个有序链表
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 这 ...
- [Leetcode] Merge k sorted lists 合并k个已排序的链表
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 思 ...
- LeetCode:Merge k Sorted Lists
题目链接 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexi ...
- LeetCode——Merge k Sorted Lists
Discription: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its ...
- leetcode -- Merge k Sorted Lists add code
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. [ ...
- Leetcode:Merge k Sorted Lists分析和实现
题目大意是传入一个链表数组lists,每个链表都由若干个链接的链表结点组成,并且每个链表结点记录一个整数.题目保证传入的链表中的整数按从小到大进行排序. 题目要求我们输出一个新的链表,这个链表中应该包 ...
- LeetCode Merge k Sorted Lists 解决报告
https://oj.leetcode.com/problems/merge-k-sorted-lists/ 归并K已经整理阵列,和分析算法的复杂. 解决报告:无论是不考虑优化,最简单的实现是要重新走 ...
- LeetCode —— Merge k Sorted Lists
/* ** 算法的思路: ** 1.将k个链表的首元素进行建堆 ** 2.从堆中取出最小的元素,放到链表中 ** 3.如果取出元素的有后续的元素,则放入堆中,若没有则转步骤2,直到堆为空 */ #in ...
随机推荐
- mysql InnoDB引擎索引超过长度限制
组合索引长度之和大于 767 bytes并无影响,当有某个字段定义长度大于 767 bytes(1000*3)时,仅产生告警,但不影响创建,超长字段会取前 255 字符作为前缀索引,并且组合索引中字段 ...
- ASA 用TFTP 备份配置方法
一种方法是用ASDM,在菜单样哪项里有一个backup,保存为一个压缩文件rar,恢复也是用ASDM.另一种是用TFTP SERVER 来做,电脑用网线接上ASA,还要把cisco TFTP SERV ...
- ConcurrentModificationException探究
modCount ? 在ArrayList,LinkedList,HashMap等等的内部实现增,删,改中我们总能看到modCount的身影,modCount字面意思就是修改次数 // HashMap ...
- 【Alpha 冲刺】 4/12
今日任务总结 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 完成API文档编写 已完成 会遗漏一些部分的api,但是通过群里询问以及对页面的review解决 孙浩楷 根据UI设计, 实现左侧 ...
- MyBatis insert操作插入,返回主键from官方
下面就是 insert,update 和 delete 语句的示例: <insert id="insertAuthor" parameterType="domain ...
- vue2.0学习笔记之路由(二)路由嵌套+动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- STM32学习之路-LCD(2)
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u011791262/article/details/27711881 这些天一直在研究LCD的初始化 ...
- MetaMask/provider-engine-3-test
通过看其test的代码去好好看看它是怎么使用的 1. provider-engine/test/basic.js const test = require('tape') const Provider ...
- python学习课件
张鑫 18511446896 ------------------------------------------------------------------------------------- ...
- RFS实例登录126邮箱/利用cookie登陆百度
可以直接添加用户关键字,也可以新建资源,将用户关键字添加入资源,然后导入整个资源文件 用户关键字内部实现如下: 打开126邮箱首页: Open Browser Http://mail.126.com ...