目录
一、题目
二、代码
一、题目
692. 前K个高频单词 - 力扣(LeetCode)
二、代码
class Solution {class KV_sort{public:bool operator()(const pair<string,int> kv1, const pair<string,int> kv2){if(kv1.first == kv2.first )//两个对象的单词相同,就比较次数{return kv2.second > kv1.second;// 返回 true 表示 kv2 在 kv1 之前}else{//根据 pair 中的第二个元素进行比较return kv1.second>kv2.second;// 返回 true 表示 kv1 在 kv2 之前}}};
public:vector<string> topKFrequent(vector<string>& words, int k) {map<string,int> m;//先统计每个单词出现的次数+自动排序for(auto& str:words){m[str]++;}//sort 无法直接对 map进行排序vector<pair<string,int>> KV(m.begin(),m.end());stable_sort(KV.begin(),KV.end(),KV_sort());//进行稳定性排序vector<string>ret;//结果存放for(int i=0;i<k;i++){ret.push_back(KV[i].first);}return ret;}
};