2026/04/05

[LeetCode] 347 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
class Solution {
public:
  vector<int> topKFrequent(vector<int>& nums, int k) {
    std::unordered_map<int, int> freqMap;
    std::priority_queue<
        std::pair<int, int>, 
        std::vector<std::pair<int, int>>, 
        std::less<std::pair<int, int>>> pq;
    std::vector<int> topK;

    for (auto& num : nums)
      freqMap[num]++;

    for (auto& freq : freqMap)
      pq.push(std::make_pair(freq.second, freq.first));

    for (int i = 0; i < k; i++) {
      topK.push_back(pq.top().second);
      pq.pop();
    }
    return topK;
  }
};