(1) 计算出每个string的频率
(2) 使用 map<int,vector<string>>是频率由低到高排列的;
(3) emplace_back()
vector<string> topKFrequent(vector<string>& words, int k) {
if(words.empty()){
return {};
}
unordered_map<string,int> m;
for(auto& x: words){
m[x]++;
}
map<int,set<string>,greater<int>> m1;
for(auto& t: m){
m1[t.second].insert(t.first);
}
int i = 0;
vector<string> ret;
for(auto& x: m1){
for(auto& str:x.second){
ret.emplace_back(str);
if(ret.size()==k){ //找出出现频率最高的K个字串,所以如果找到了k个,就会return.
return ret;
}
}
}
return ret;
}