【算法】LeetCode 热题 HOT 100 整理

这里没太多花里胡哨的了,暂时就是把做过的值得记录的题整理一下。

23.合并K个升序链表

在这里插入图片描述
这个题。。你说它是hard吧,我觉得并不没达到,但你说不是hard吧,我自己做还真没AC,一直在超时,用了 优先队列 之后才成功AC,排在88%左右。

所以这个题主要是为了记录一下 优先队列 的这个概念,以及使用方式。

不过首先还是说一下题目思路,一下有几种题解:

  1. 每次合并两个链表,对于k个链表,合并k-1次
  2. 每次合并两个链表,对于k个链表,合并 l o g 2 k log_2k log2k
  3. 优先队列
    这个方法中,优化的重点是这个优先队列,基本思路是对于k个链表的表头,每次对这k个数比大小,取最小的当返回链表的next,然后最小的这个listNode就可以向后错一位了。这个思路我刚看完题就想到了。。奈何没有意识到优先队列竟然这么重要。。。如果每次都是k个数比大小的话,时间复杂度是 k 2 n k^2n k2n,因为相当于每生成一个结点都要比大小,比大小就需要k次计算,共有nk个节点,所以复杂度就是 k 2 n k^2n k
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值