class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
vector<int> result(k, 0); // 最终的结果
unordered_map<int, int> M; // 保存每个数字出现的次数
priority_queue<pair<int, int> > PQ; // 选出前 k 个出现次数最多的
for(int ii = 0; ii < nums.size(); ii++) {
if(M.find(nums[ii]) == M.end()) M[nums[ii]] = 1;
else M[nums[ii]]++;
}
for(unordered_map<int, int>::iterator it = M.begin(); it != M.end(); it++) {
PQ.push({it->second, it->first});
}
for(int ii = 0; ii < k; ii++) {
result[ii] = PQ.top().second;
PQ.pop();
}
return result;
}
};
【leetcode C++】347. Top K Frequent Elements
最新推荐文章于 2024-04-23 17:09:00 发布