题目链接
给定一个非空的整数数组,返回其中出现频率前 k 高的元素。
nums = [1,1,1,2,2,3], k = 2
[1,2]
nums = [1], k = 1
[1]
简单数据结构,AC代码如下:
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
map<int,int>m;
vector<int>ans;
vector<pair<int,int>>v;
for(auto i:nums) m[i]++;
for(auto i:m) v.push_back({
i.second,i.first});
sort(v.rbegin(),v.rend());
for(int i=0;i<k;i++) ans.push_back(v[i].second);
return ans;
}
};