LeetCode 每日一题 692.前K个高频单词

LeetCode 每日一题 692.前K个高频单词


问题描述

在这里插入图片描述

简要思路

map统计,在使用sort排序输出前k个。

代码

class Solution {
    
    
public:
    static bool cmp(pair<string, int> &p1, pair<string, int> &p2){
    
    
        return p1.second > p2.second || (p1.second == p2.second && p1.first < p2.first);
    }

    vector<string> topKFrequent(vector<string>& words, int k) {
    
    
        unordered_map<string, int> word;
        for(int i = 0; i < words.size(); i++) word[words[i]]++;

        vector<pair<string, int>> alls;

        for(pair<string, int> p : word) alls.push_back(p);

        sort(alls.begin(), alls.end(), cmp);

        vector<string> res;
        for(int i = 0; i < k; i++) res.push_back(alls[i].first);

        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_45438600/article/details/117049982