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;
    }
};
posted @ 2019-12-28 14:47  JasonPeng1  阅读(173)  评论(0编辑  收藏  举报