347. 前 K 个高频元素
题目链接:347. 前 K 个高频元素
代码如下:
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
vector<int> res;
unordered_map<int,int> um;
for(int i=0;i<nums.size();i++)//统计各个元素出现的次数
um[nums[i]]++;
vector<pair<int,int>> s;
for(auto it=um.begin();it!=um.end();it++)
s.emplace_back(pair<int,int>(it->first,it->second));
//按照第二个元素进行递减排序
sort(s.begin(),s.end(),[&](const pair<int,int>& p1,const pair<int,int> &p2)->bool
{
return p1.second>p2.second;
});
for(int i=0;i<k;i++)
{
res.emplace_back(s[i].first);
}
return res;
}
};