算法分析课每周练习 Merge k Sorted Lists
来源:互联网 发布:国密算法标准 编辑:程序博客网 时间:2024/06/06 18:49
题目
Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
分析
Merge Sort 里有合并Sorted List的步骤,这个是一般情况,如果两两合并时间复杂度,O(Node* log (Lists)),但比较占内存
这里用一个PriorityQueue来解决插入顺序,每次插入都要pop和enqueue,时间复杂度是O(1)和O(log(Lists)),总体时间复杂度为O(Node*log(Lists)),
空间复杂度是O(Node + Lists)
from Queue import PriorityQueueclass Solution(object): def mergeKLists(self, lists): dummy = ListNode(None) curr = dummy q = PriorityQueue() for node in lists: if node: q.put((node.val,node)) while q.qsize()>0: curr.next = q.get()[1] curr=curr.next if curr.next: q.put((curr.next.val, curr.next)) return dummy.next
阅读全文
0 0
- 算法分析课每周练习 Merge k Sorted Lists
- 每周LeetCode算法题(四):Merge k Sorted Lists
- 算法练习(10):Merge k Sorted Lists
- 【LeetCode算法练习(C++)】Merge k Sorted Lists
- LeetCode算法题目:Merge k Sorted Lists
- Merge K Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge K Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Merge k Sorted Lists
- Java+Selenium3方法篇26-处理Alert弹窗
- containsKey方法——判断是否包含指定的键名
- [搬萝卜 & 取水果]
- 解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variabl
- OkHttp简单功能封装
- 算法分析课每周练习 Merge k Sorted Lists
- JSP四种属性范围
- RocketMQ命令整理
- jQuery中对数组的值进行去重处理
- 开篇Markdonw
- jdk-ThreadPoolExecutor(三)---内部Worker和执行方法
- 牛客华为机试题刷题笔记(二)
- Spring框架
- HTML:利用F12进行程序调试,断点的清理以及添加事件监听