博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Merge k Sorted Lists
阅读量:5147 次
发布时间:2019-06-13

本文共 1208 字,大约阅读时间需要 4 分钟。

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

Solution: Find the smallest list-head first using minimum-heap(lgk).

complexity: O(NlgK)

1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     class compare {12     public:13         bool operator()(ListNode *a, ListNode *b) {14             return a->val > b->val; // minimum-heap15         }16     };17     18     ListNode *mergeKLists(vector
&lists) {19 priority_queue
, compare> q;20 for(int i = 0; i < lists.size(); i++) {21 if(lists[i]) {22 q.push(lists[i]);23 }24 }25 ListNode dummy(0), *cur = &dummy;26 while(!q.empty()) {27 ListNode* node = q.top(); q.pop();28 cur->next = node;29 cur = cur->next;30 if(node->next) {31 q.push(node->next);32 }33 }34 return dummy.next;35 }36 };

 

转载于:https://www.cnblogs.com/zhengjiankang/p/3646427.html

你可能感兴趣的文章
Kinect学习(3)Kinect for Windows SDK资料下载
查看>>
Java入门——第七天
查看>>
HTML5 Audio时代的MIDI音乐文件播放
查看>>
明确工作职责的重要性
查看>>
ajax方法总结
查看>>
C语言进阶——const 和 volatile 分析09
查看>>
字符串的查找删除
查看>>
NOI2018垫底记
查看>>
快速切题 poj 1002 487-3279 按规则处理 模拟 难度:0
查看>>
判断线段是否相交
查看>>
Codeforces Round #277 (Div. 2)
查看>>
一步步学Mybatis-搭建最简单的开发环境-开篇(1)
查看>>
微信小程序图片上传
查看>>
【更新】智能手机批量添加联系人
查看>>
NYOJ-128前缀式计算
查看>>
centos6.7 配置外网端口映射
查看>>
红外通信基础(含代码)
查看>>
淡定,啊。数据唯一性
查看>>
java并发编程之lock锁
查看>>
深入理解 JavaScript 事件循环(一)— event loop
查看>>