目錄
1、題目分析
2.解題思路
3.代碼實現
4.總結
1、題目分析
2.解題思路
首先它給出我們一個string,讓我們提取出它們中出現次數最多的。利用map將word一個一個存入其中,沒有就插入,有了就+1,這樣我們就得到了key_value,key為單詞,value為單詞出現次數,但是現在我們的排序不是按照value進行排序的,我們讓再次利用multimap,讓它進行的排序查找,并且降序插入,讓它從大到小(方便我們直接插入k個值),之后建立一個vector<string>進行插入k次即可。
3.代碼實現
class Solution {
public:vector<string> topKFrequent(vector<string>& words, int k) {map<string, int>mup;//將words存入mup中for (auto e : words){auto it = mup.find(e);if (it == mup.end()){mup.insert({e,1});}else{mup[e]++;}}multimap<int, string, greater<int>>mup1;for (auto e : mup){mup1.insert({ e.second, e.first });}int count = 0;vector<string>nums;auto it2 = mup1.begin();for (int i = 0; i <k ; i++){nums.push_back((*it2).second);it2++;}return nums;}
};
4.總結
這道題鍛煉我們對于map的接口使用,熟練的使用map的接口使我們解題的關鍵。