1class Solution {2public:3vector<int> topKFrequent(vector<int> &nums, int k) {4unordered_map<int, int> map;5for (int num : nums) {6map[num]++;7}89vector<int> res;10// pair<first, second>: first is frequency, second is number11priority_queue<pair<int, int>> pq;12for (auto it = map.begin(); it != map.end(); it++) {13pq.push(make_pair(it->second, it->first));14if (pq.size() > (int)map.size() - k) {15res.push_back(pq.top().second);16pq.pop();17}18}19return res;20}21};