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