![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
堆
BlackMan_阿伟
不积跬步无以至千里
展开
-
May——692. 前K个高频单词
1、哈希方法 先对数组进行计数统计 然后对key进行排序,根据value的负数进行升序排序,然后如果出现次数相同的话,那么对key再进行升序的操作即可 这块的sorted()中待排序的只能是dic.keys()或者dic.values() class Solution: def topKFrequent(self, words: List[str], k: int) -> List[str]: dic = dict() for word in wo...原创 2021-05-20 09:34:03 · 74 阅读 · 0 评论 -
《Leetcode of September 》347. 前 K 个高频元素
class Solution: def topKFrequent(self, nums: List[int], k: int) -> List[int]: dp = collections.defaultdict(int) for i in nums: dp[i]+=1 dp = sorted(dp.items(), key=lambda item:item[1], reverse=True) ...原创 2020-09-07 11:23:32 · 79 阅读 · 0 评论 -
February——215.数组中的第k个最大元素&最小堆
class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: #直接排序,然后找到第k个最大的元素 nums_res = sorted(nums,reverse=True) return nums_res[k-1] #构建一个大小为k的最小堆,堆顶元素就是第k个最大的元素 heap = nums h...原创 2021-02-18 10:55:49 · 176 阅读 · 0 评论 -
February——703. 数据流中的第 K 大元素&堆的总结以及API的使用
聊今天这个题目之前先聊聊一个数据结构:堆。堆又分为最大堆和最小堆。父节点的值总是大于或者等于任何一个子节点的值时为最大堆。父节点的值总是小于或者等用户任何一个子节点的值时为最小堆。其实说白了就是一个完全二叉树的数据结构。如下图所示,左边是最大堆,右边是最小堆。 最大堆和最小堆的应用和优先队列差不多,每次都能弹出一个最大值或者最小值,当然在python中也有相应API。接下来堆API的方法大致说明一下: #导入堆 import heapq #将list转化堆 heapq.heapify(x)...原创 2021-02-18 10:46:31 · 116 阅读 · 0 评论