您的位置:首页 > 科技 > 能源 > 双语网站建设费用_跨境电商独立站平台有哪些_找营销推广团队_百度推广app下载官方

双语网站建设费用_跨境电商独立站平台有哪些_找营销推广团队_百度推广app下载官方

2025/8/6 15:13:04 来源:https://blog.csdn.net/zqxf123456789/article/details/146001111  浏览:    关键词:双语网站建设费用_跨境电商独立站平台有哪些_找营销推广团队_百度推广app下载官方
双语网站建设费用_跨境电商独立站平台有哪些_找营销推广团队_百度推广app下载官方

本文通过一道例题来介绍python中的最小堆


合并K个升序链表

import heapq
ListNode.__lt__ = lambda a, b: a.val < b.val  # 让堆可以比较节点大小
class Solution:    def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:        cur = dummy = ListNode()  # 哨兵节点,作为合并后链表头节点的前一个节点        h = [head for head in lists if head]  # 初始把所有链表的头节点入堆        heapify(h)  # 堆化        while h:  # 循环直到堆为空                              node = heappop(h)  # 剩余节点中的最小节点            if node.next:  # 下一个节点不为空                heappush(h, node.next)  # 下一个节点有可能是最小节点,入堆            cur.next = node  # 合并到新链表中            cur = cur.next  # 准备合并下一个节点        return dummy.next  # 哨兵节点的下一个节点就是新链表的头节点

  • __lt__特殊方法重载
ListNode.__lt__ = lambda a, b: a.val < b.val   

__lt__ 是Python中的一个特殊方法,用于定义小于号 ( < ) 的行为。在这里,通过lambda表达式定义了 ListNode 类的小于号比较行为,使得 ListNode 对象可以比较大小,从而可以用于堆(优先队列)中。

  • heapq 模块
import heapq
heapify(h)  # 堆化   

heapq 是Python标准库中的堆队列算法模块。heapify 函数用于将列表 h 转换为堆(优先队列)。

  • heappop 和 heappush 函数
node = heappop(h)  # 剩余节点中的最小节点
if node.next:  # 下一个节点不为空    heappush(h, node.next)  # 下一个节点有可能是最小节点,入堆

heappop 函数用于从堆中弹出最小的元素, heappush 函数用于将元素插入堆中,并保持堆的性质。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com