LeetCode 23. Merge k Sorted Lists
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 23. Merge k Sorted Lists
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解法一:Priority Queue
優先隊列實際是對每次對list頭結點依次比較排序的一種優化。插入和刪除時間復雜度都為O(logk)。一共n個數的話總共是O(nlogk)。
復習一下優先隊列的寫法。
class Solution { public:struct cmp{bool operator()(ListNode *&a, ListNode *&b){return a->val > b->val;}};ListNode* mergeKLists(vector<ListNode*>& lists) {priority_queue<ListNode *, vector<ListNode *>, cmp> q;for (auto list:lists)if (list) q.push(list);ListNode *head=new ListNode(0), *p=head;while (!q.empty()){ListNode *tmp=q.top(); q.pop();if (tmp->next) q.push(tmp->next);p->next = tmp;p = p->next;}return head->next;} };?
解法二:Divide and Conquer
轉載于:https://www.cnblogs.com/hankunyan/p/9368999.html
總結
以上是生活随笔為你收集整理的LeetCode 23. Merge k Sorted Lists的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序 之 请求函数封装
- 下一篇: 微服务架构解析