解题思路:
(1)使用map储存键值对,使用vector自定义排序
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
unordered_map<int,int> mp;
for(int i=0;i<nums.size();i++) {
mp[nums[i]]++;
}
vector<pair<int,int>> vec;
for(auto it=mp.begin();it!=mp.end();it++) {
vec.push_back({it->first,it->second});
}
auto comp=[&](const pair<int,int> &a,const pair<int,int> &b) {
if(a.second>=b.second) return true;
else return false;
};
sort(vec.begin(),vec.end(),comp);
vector<int> v;
for(int i=0;i<k;i++) {
v.push_back(vec[i].first);
}
return v;
}
};