题目链接:https://leetcode.cn/problems/top-k-frequent-words/
借助vector对map进行排序
int cmp(pair<string,int>& a, pair<string,int>& b){
if (a.second != b.second)return a.second > b.second;
else return a.first < b.first;
}
class Solution {
public:
vector<string> topKFrequent(vector<string>& words, int k) {
vector<string> vec;
vector<pair<string, int> > arr;
unordered_map<string, int> m;
for (int i = 0; i < words.size(); ++i) {
++m[words[i]];
}
for (auto i = m.begin(); i != m.end(); ++i) {
arr.push_back(*i);
}
sort(arr.begin(), arr.end(), cmp);
for (int i = 0; i < arr.size(); ++i) {
vec.push_back(arr[i].first);
if (vec.size() == k)break;
}
return vec;
}
};