哈希表+排序
class Solution {
public:
vector<string> topKFrequent(vector<string>& words, int k) {
unordered_map<string, int> map;
vector<pair<string, int>> vec;
vector<string> ans;
for(auto& d:words) map[d]++;
for(auto& d:map){
vec.push_back(make_pair(d.first, d.second));
}
sort(vec.begin(), vec.end(),[](const pair<string, int>& p,const pair<string, int>& q){
if(p.second > q.second) return true;
else if(p.second == q.second){
if(p.first < q.first) return true;
}
return false;
});
for(int i = 0; i < k; i++) ans.push_back(vec[i].first);
return ans;
}
};