点击打开链接
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
unordered_map<int, int> m; //默认每个数字对应的次数为0
priority_queue<pair<int, int>> Q; //默认是最大堆
vector<int> res;
//hash
for(int i=0; i<nums.size();i++) m[nums[i]]+=1;
for(auto it: m) Q.push({it.second, it.first});
for(int i=0; i<k;i++){
res.push_back(Q.top().second);
Q.pop();
}
return res;
}
};
本文介绍了一种使用C++实现寻找数组中出现频率最高的Top K个元素的方法。通过结合哈希表与优先队列(最大堆),该算法能够高效地找出指定数量的最常见元素。

1075

被折叠的 条评论
为什么被折叠?



