hash计数,然后导到vector里排序,再取出前k项。
vector<int> topKFrequent(vector<int>& nums, int k) {
map<int,int> hash;
for(int i=0;i<nums.size();++i){
++hash[nums[i]];
}
vector<pair<int,int>> vec;
for(auto it=hash.begin();it!=hash.end();++it){
vec.push_back(*it);
}
sort(vec.begin(),vec.end(),[=](pair<int,int> a,pair<int,int> b){
return a.second > b.second;
});
vector<int> res;
for(int i=0;i<k;++i){
res.push_back(vec[i].first);
}
return res;
}