Top K Frequent Elements Posted on 2018-09-02 Descriptionhttps://leetcode.com/problems/top-k-frequent-elements/description/ Solution123456789101112131415161718192021222324252627282930313233343536import heapqclass Solution: def topKFrequent(self, nums, k): """ :type nums: List[int] :type k: int :rtype: List[int] """ counter = {} for num in nums: if not counter.get(num): counter[num] = 1 else: counter[num] += 1 reverse_dic = {} for (key, value) in counter.items(): neg_value = -value if not reverse_dic.get(neg_value): reverse_dic[neg_value] = [key] else: reverse_dic[neg_value].append(key) heap = list( reverse_dic.keys() ) heapq.heapify(heap) ret = [] while k > 0: value = heapq.heappop(heap) key_list = reverse_dic[value] k -= len(key_list) for key in key_list: ret.append(key) return ret