692. 前K个高频单词 (堆)

2019-12-28

14:46:41

 熟练掌握C++ sort函数的用法

以及如何定义cmp函数

class Solution {
public:
    static bool cmp(const pair<string,int> &p1,const pair<string,int> &p2){
        if(p1.second > p2.second){
            return true;
        }
        if(p1.second == p2.second){
            return p1.first<p2.first;
        }
        else return false;
    }
    vector<string> topKFrequent(vector<string>& words, int k) {
        unordered_map<string,int> temp;
        vector<string> result;
        for(int i = 0;i<words.size();++i){
            temp[words[i]]++;
        }
        vector<pair<string,int>> p;
        for(pair<string,int> p1 : temp){
            p.push_back(p1);
        }
        sort(p.begin(),p.end(),cmp);
        for(int i=0;i<k;++i){
            result.push_back(p[i].first);
        }
        return result;
    }
};
原文地址:https://www.cnblogs.com/JasonPeng1/p/12111656.html