为什么python没有大顶堆
答案:2 悬赏:30 手机版
解决时间 2021-11-29 01:13
- 提问者网友:半生酒醒
- 2021-11-28 06:38
为什么python没有大顶堆
最佳答案
- 五星知识达人网友:渊鱼
- 2021-11-28 07:21
python的heapq在实现的时候,没有像STL或者Java可以传入比较函数,具体的原因可以参考参考文档给出的链接。
因此有些人想出了比较trick的思路。一句话概括如下:
push(e)改为push(-e),pop(e)为-pop(e),也就是说存入和取出的数都是相反数,其他逻辑和TopK相同。
实现用户自定义的比较函数,允许elem是一个tuple,按照tuple的第一个元素进行比较,所以可以把tuple的第一个元素作为我们的比较的key。。
因此有些人想出了比较trick的思路。一句话概括如下:
push(e)改为push(-e),pop(e)为-pop(e),也就是说存入和取出的数都是相反数,其他逻辑和TopK相同。
实现用户自定义的比较函数,允许elem是一个tuple,按照tuple的第一个元素进行比较,所以可以把tuple的第一个元素作为我们的比较的key。。
全部回答
- 1楼网友:狂恋
- 2021-11-28 08:09
谁跟你说的没树?树都是逻辑上的,你自己实现就好
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯