Top K Frequent Elements¶ Top K Frequent Elements 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34from typing import List import heapq def topKFrequent(nums: List[int], k: int) -> List[int]: num_counter = {} for num in nums: if num in num_counter: num_counter[num] += 1 else: num_counter[num] = 1 print(num_counter) heap = [] for number, frequency in num_counter.items(): if len(heap) == k: popped = heapq.heappushpop(heap, (frequency, number)) print(f"popped: {popped}, new: ", heap) else: heapq.heappush(heap, (frequency, number)) print("pushed, new:", heap) most_frequent = [] return [item[1] for item in heap] nums = [1,2,1,2,1,2,3,1,3,2] k = 2 topKFrequent(nums, k) {1: 4, 2: 4, 3: 2} pushed, new: [(4, 1)] pushed, new: [(4, 1), (4, 2)] popped: (2, 3), new: [(4, 1), (4, 2)] [1, 2]