class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
unordered_map<int,int> hash;
for(auto item : nums)
hash[item]++;
priority_queue<pair<int,int>> heap;
for(auto it = hash.begin();it != hash.end();it++)
heap.push(pair<int,int>(it->second,it->first));
vector<int> ret;
for(int i =0;i<k;i++){
ret.push_back(heap.top().second);
heap.pop();
}
return ret;
}
};
先把数放在hash映射里,然后再用出现次数作为键值,放入堆中排序。然后得到前几个数。
LeetCode 347. Top K Frequent Elements
最新推荐文章于 2024-10-06 17:45:34 发布