python3 -- 堆(heapq)
2021-02-17 12:17
标签:font 数据结构 删除 实现 lin 结构 div solution push 堆是一个二叉树,其中每个父节点的值都小于或等于其所有子节点的值。整个堆的最小元素总是位于二叉树的根节点。 python的heapq模块提供了对堆的支持。这个模块实现的是小顶堆 堆数据结构最重要的特征是heap[0]永远是最小的元素 1.heapq.heappush(heap,item) 注:heap为定义堆,item增加的元素 2.heapq.heapify(list) 3.heapq.heappop(heap) 4.heapq.heapreplace(heap.item) 5.heapq.nlargest(n,heap) 6.heapq.nsmallest(n,heap) leetcode练习题: python3 -- 堆(heapq) 标签:font 数据结构 删除 实现 lin 结构 div solution push 原文地址:https://www.cnblogs.com/GumpYan/p/12698737.html将列表转换为堆
注:删除最小值,因为堆的特征是heap[0]永远是最小的元素,所以一般都是删除第一个元素。
注:删除最小元素值,添加新的元素值
注:查询堆中的最大元素,n表示查询元素个数
注:查询堆中的最小元素,n表示查询元素的个数
class Solution:
def getLeastNumbers(self, arr: List[int], k: int) -> List[int]:
if k == 0:
return list()
hp = [-x for x in arr[:k]]
heapq.heapify(hp)
for i in range(k, len(arr)):
if -hp[0] > arr[i]:
heapq.heappop(hp)
heapq.heappush(hp, -arr[i])
ans = [-x for x in hp]
return ans
文章标题:python3 -- 堆(heapq)
文章链接:http://soscw.com/index.php/essay/56560.html