23.合并K个升序链表-python
23.合并K个升序链表(困难)
题目大意:
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
题目
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
示例1:
1 |
|
示例2:
1 |
|
示例3:
1 |
|
提示:
k == lists.length
0 <= k <= 10^4
0 <= lists[i].length <= 500
10^4 <= lists[i][j] <= 10^4
lists[i]
按 升序 排列lists[i].length 的总和不超过 10^4
分析和解答
这个题感觉实际真的明白了什么是优先队列,什么是堆的思想。python这个 heapq
是真的神,如果用正数就是小根堆,如果是用负数就可以转化为大根堆了!
只要先用 heapq
存储成一个堆,然后不断 heappop()
就可以了,这里推荐堆的命名可以直接用 heap
;
另注,这个题实际上有很多做法,但这个做法是最为简单的了,其他还需要进一步探究;
1 |
|
23.合并K个升序链表-python
http://example.com/2022/03/14/algorithms/leetcode-python/23-合并K个升序链表-python/