python 堆

堆排序

堆排序即是利用堆的特性对记录序列进行排序的一种排序方法。

python的标准库——heapq

heap是python的一个数据结构,但实际上是一个优先队列。实际上python没有独立的堆类型,而是只有一个包含一些堆操作的模块。这个模块名为heapq。

一共包括6种函数类型:

heappush(heap,x)将x压入栈中
heappop(heap)将最小的元素弹出
heapify(heap)让列表具备堆特征
heapreplace(heap,x)弹出最小的元素,并将x压入堆中
nlargest(n,iter)返回iter中n个最大的元素(TOPN问题)
nsmallest(n,inter)返回iter中n个最小的元素

实例

#字典堆:取出前k个value值最大的key值
import collections
import heapq
class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        count = collections.Counter(nums)   
        return heapq.nlargest(k, count.keys(), key=count.get)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值