zoukankan      html  css  js  c++  java
  • Leetcode-692 Top K Frequent Words(前K个高频单词)

     1 struct cmp
     2 {
     3     bool operator()(const pair<string,int> p1, const pair<string,int> p2)
     4     {
     5         if(p1.second!=p2.second)
     6             return p1.second > p2.second; //second的小值优先
     7         return p1.first < p2.first;
     8     }
     9 };
    10 
    11 class Solution
    12 {
    13     public:
    14         vector<string> topKFrequent(vector<string>& words, int k)
    15         {
    16             unordered_map<string,int> mymap;
    17             for(auto s:words)
    18             {
    19                 auto ptr_to_str = mymap.find(s);
    20                 if(ptr_to_str==mymap.end())
    21                 {
    22                     mymap.insert(make_pair(s,1));
    23                 }
    24                 else
    25                 {
    26                     ptr_to_str->second ++;
    27                 }
    28             }
    29 
    30             priority_queue<pair<string,int>, vector<pair<string,int>>, cmp> Q;
    31             for(auto p:mymap)
    32             {
    33                 if(Q.size()<k)
    34                 {
    35                     Q.push(make_pair(p.first,p.second));
    36                 }
    37                 else
    38                 {
    39                     if(p.second>Q.top().second || (p.second==Q.top().second && p.first<Q.top().first))
    40                     {
    41                         Q.pop();
    42                         Q.push(make_pair(p.first,p.second));
    43                     }
    44                 }
    45             }
    46 
    47             vector<string> result;
    48             while(!Q.empty())
    49             {
    50                 result.emplace_back(Q.top().first);
    51                 Q.pop();
    52             }
    53             reverse(result.begin(),result.end());
    54             return result;
    55         }
    56 };
  • 相关阅读:
    数据库范式
    服务器防火墙
    Java垃圾回收(GC)机制详解
    Java内存模型
    类加载器
    Java类加载机制
    java虚拟机:Java内存区域及对象
    初识HashMap
    初识LinkedList
    java ArrayList
  • 原文地址:https://www.cnblogs.com/Asurudo/p/9485930.html
Copyright © 2011-2022 走看看