本文主要是介绍692. 前K个高频单词(c++lambda()完成哈希表的按value排序),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、题目:
给一非空的单词列表,返回前 k 个出现次数最多的单词。
返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。
二、思路和代码:
class Solution {
public:vector<string> topKFrequent(vector<string>& words, int k) {unordered_map<string,int>m; for(auto &s:words) m[s]++;vector<string>res;for(auto &[first,second]:m) res.push_back(first); //哈希表的second排序,如果不同的单词有相同出现频率,按字母顺序排序sort(res.begin(),res.end(),[&]( string &a,string &b) { return m[a] == m[b] ? a < b : m[a] > m[b];});// 删除k-数组末尾res.erase(res.begin() + k, res.end());return res;}
};
怕什么真理无穷,进一步有进一步的欢喜,520快乐!
这篇关于692. 前K个高频单词(c++lambda()完成哈希表的按value排序)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!