问题描述
简要思路
map统计,在使用sort排序输出前k个。
代码
class Solution {
public:
static bool cmp(pair<string, int> &p1, pair<string, int> &p2){
return p1.second > p2.second || (p1.second == p2.second && p1.first < p2.first);
}
vector<string> topKFrequent(vector<string>& words, int k) {
unordered_map<string, int> word;
for(int i = 0; i < words.size(); i++) word[words[i]]++;
vector<pair<string, int>> alls;
for(pair<string, int> p : word) alls.push_back(p);
sort(alls.begin(), alls.end(), cmp);
vector<string> res;
for(int i = 0; i < k; i++) res.push_back(alls[i].first);
return res;
}
};