Skip to content
LC-0347 Medium LeetCode

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
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