Leetcode -- Merge k Sorted Lists
来源:互联网 发布:c语言经典编程282例txt 编辑:程序博客网 时间:2024/05/22 10:52
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
本题使用优先队列,自定义优先级。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: struct cmp { bool operator ()(pair<int,int> &a,pair<int,int> &b) { return a.first>b.first; } }; ListNode* mergeKLists(vector<ListNode*>& lists) { ListNode *h = new ListNode(-1),*p = h; priority_queue<pair<int,int>,vector<pair<int,int> >,cmp> que; int n = lists.size(); for(int i=0;i<n;++i) if(lists[i]) { que.push(make_pair(lists[i]->val,i)); } while(!que.empty()) { auto tmp = que.top(); que.pop(); int val = tmp.first,idx = tmp.second; p->next = lists[idx]; lists[idx] = lists[idx]->next; if(lists[idx]) { que.push(make_pair(lists[idx]->val,idx)); } p = p->next; } p = h->next; delete h; return p; }};
0 0
- LeetCode: Merge k Sorted Lists
- LeetCode Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge K sorted lists
- [LeetCode]Merge k Sorted Lists
- [LeetCode] Merge k Sorted Lists
- LeetCode-Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- LeetCode - Merge k Sorted Lists
- LeetCode | Merge k Sorted Lists
- 【leetcode】Merge k Sorted Lists
- Leetcode: Merge k Sorted Lists
- <Leetcode>Merge k Sorted Lists
- [LeetCode] Merge K sorted lists
- [LeetCode] Merge k Sorted Lists
- 【Leetcode】Merge k Sorted Lists
- thinkphp——通过在线编辑器添加的内容在模板里正确显示(只显示内容,而不是html代码)
- 编程思想
- UI中涉及到定时器的显示
- RSA笔记
- hdoj--2767--Proving Equivalences (scc+缩点)
- Leetcode -- Merge k Sorted Lists
- 转载老码农教你学英语
- C语言基础之Printf用法
- 带表头的线性链表的实现
- 用JS写的简单的猜数的游戏,一个是步数限制的,一个是有时间限制的。
- hdoj Happy Matt Friends 5119 (DP) 好题
- javascript基础之七(函数闭包中this的变化)
- 【读书笔记】程序员的自我修养总结(三)
- 选择,冒泡,快速排序