01 · Question
Given an integer array nums and an integer k, return the k most frequent elements.
nums
k
02 · Solution
1import heapq2 3def topKFrequent(nums: List[int], k: int) -> List[int]:4 freq = {}5 for x in nums:6 freq[x] = freq.get(x, 0) + 17 8 heap = []9 for x, f in freq.items():10 heapq.heappush(heap, (f, x))11 if len(heap) > k:12 heapq.heappop(heap)13 14 return [x for (_, x) in heap]