常用内置与标准库
heapq 堆
小顶堆、Top K、优先队列,LeetCode 常见
heapq 小顶堆
heapq 是小顶堆,堆顶是最小值。heappush、heappop 都是 O(log n)。
加载代码编辑器中…
取前 K 小 / 前 K 大
前 K 小:维护大小为 K 的堆,或 nsmallest(k, arr)。
前 K 大:用负值当“大顶堆”,或 nlargest(k, arr)。
加载代码编辑器中…
大顶堆:取负
heapq 只有小顶堆,要“最大值在堆顶”就存负值,取出来再取负。
加载代码编辑器中…
按元组排序(多关键字)
堆里放元组时,按第一个元素比大小,所以“优先级”放第一项。
加载代码编辑器中…