Merge K sorted link list

还是昨天的合并 K 个有序链表,今天去社区看了下,还有更简单的解决方案,时间复杂度和空间复杂度更好,大概的思路是用python的最小堆来实现,每次从堆里弹出最小元素,然后最近一次哪个链表出了最小元素就把下一个塞进堆里,很高效,很简洁,元祖(tuple)的运用是这个实现的点睛之笔,下面贴出代码

def mergeKLists(self, lists):from heap import heappop, heapify, heapreplacedummy = node = ListNode(0)# 下面这一步很赞h = [(n.val), n] for n in lists if n]# n 转 minheapheapify(h)while(h):# 取 堆里最小的值v, n = h[0]if n.next is None:heappop(h)else:# 弹出最小值,并把同一链表的下一个最小值放进堆中heapreplace(h, (n.next.val, n.next))node.next = nnode = node.nextreturn dummy.next
复制代码

Conclusion

想起了大佬 Linus 的那句话

"Bad programmers worry about the code. Good programmers worry about data structures and their relationships."

转载于:https://juejin.im/post/5c7ba8626fb9a049f23d7b11

Leetcode03相关推荐

  1. LeetCode03:无重复字符的最长子串

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...

  2. JAVA窗口sin值_大厂经典笔试题—LeetCode03无重复字符的最长子串(滑动窗口)

    题目描述 原创作者:bigsai,长期维护不易,如有收获还请点赞.收藏支持! 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabc ...

  3. 【删文说明】谁说本科妹纸不能拿 BAT SP Offer?

    点击????小卡片,回复 "1024" 获取大厂面试指南 删文小插曲 大家好,我是石头哥. 昨天手快的朋友可能看到我有一篇推送,但是后来删除了.在此补充说明一下原因. 没想到,昨天 ...

最新文章

  1. Java面试题及答案整理( 2022年最新版,持续更新)
  2. 同步手绘板——将View的内容映射成Bitmap转图片导出
  3. 域名抢注之乱象:投资的暴利,管理的漏洞
  4. 《硝烟中的Scrum和XP》-首感
  5. C语言“悬空指针”和“野指针”究竟是什么意思?
  6. mysql5.6找不到int_为什么在mysql 5.6中,在int字段上自动递增跳过“2147483646”?
  7. 基于Docker的开发模式驱动持续集成落地实施
  8. 佐藤hiroko-爱拯救了我(步之物语)
  9. Qt安装要注意的事项(Qt安装教程)
  10. 学生图书管理系统(附源代码及数据库)
  11. Fluent UDF中调用Matlab函数(以误差函数erf为例)
  12. Selenium+IP爬虫刷新网页
  13. 软件工程--快速原型模型详解
  14. mysql min pool size_数据库连接池问题 Max Pool Size
  15. 动漫制作都用html5吗,怎么制作h5动画?
  16. 博客-空间-视频作品点赞的固定独立IP
  17. 谷粒商城-分布式事务
  18. 脏读(dirty read)不可重复读(unrepeatable read)幻读(phantom problem)解析
  19. 天籁obd接口针脚定义_汽车OBD接口定义
  20. 苹果cms怎么做html缓存广告,苹果cms如何添加播放器预加载和缓冲广告

热门文章

  1. Android应用开发:网络编程-2
  2. Android提醒:Dialog,Toast,Snackbar
  3. python sort 部分元素_Python 犄角旮旯--List
  4. 项目中使用completablefuture_“工业冷冻用中大型冷盐水机组使用R290替代R22项目”通过验收...
  5. linux mysql库看不见,linux下Mysql找不到mysqlclient库!谢谢大家
  6. php如何实现根据地区内筛选,PHP区块查询实现方法分析
  7. Linux下Nginx编译安装过程详解
  8. 群晖备份linux分区,黑群晖二合一系统无损扩充系统分区方法补充
  9. php pdo连接不成功,php – 为什么PDO在连接失败时打印我的密码?
  10. 残缺棋盘问题算法分析_javascript使用递归回溯算法和贪心算法解决马踏棋盘问题...