前K个高频单词
题目
思路
mapj统计,vector<pair<string,int> >排序,最后返回vector< string >。
代码
class Solution {
public:
static bool cmp(pair<string,int>& a,pair<string,int>& b)
{
if(a.second==b.second) return a.first<b.first;
return a.second>b.second;
}
vector<string> topKFrequent(vector<string>& words, int k) {
unordered_map<string,int> a;
vector<pair<string,int> > ans;
for(int i=0;i<words.size();i++)
{
a[words[i]]++;
}
ans.assign(a.begin(),a.end());
sort(ans.begin(),ans.end(),cmp);
vector<string> x;
for(int i=0;i<k;i++)
{
x.push_back(ans[i].first);
}
return x;
}
};