347. Top K Frequent Elements
Read the full problem statement on LeetCode.
Difficulty: medium Acceptance: 64% Topics: Array, Hash Table, Divide and Conquer, Sorting, Heap (Priority Queue), Bucket Sort, Counting, Quickselect
View full problem on LeetCode Reading material
Reference solution (spoiler · python)
import heapq
class Solution:
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
frequency_map = {}
for num in nums:
frequency_map[num] = frequency_map.get(num, 0) + 1
min_heap = []
for num, frequency in frequency_map.items():
heapq.heappush(min_heap, (frequency, num))
if len(min_heap) > k:
heapq.heappop(min_heap)
return [num for frequency, num in min_heap]
Solution from kamyu104/LeetCode-Solutions · MIT