思路:

堆。
实现:

 #include <bits/stdc++.h>
using namespace std; class Solution
{
public:
inline bool cmp(pair<int, string> a, pair<int, string> b)
{
if (a.first > b.first) return true;
if (a.first == b.first && a.second < b.second) return true;
return false;
}
struct cmp1
{
bool operator()(const pair<int, string>& a, const pair<int, string>& b) const
{
if (a.first > b.first) return true;
if (a.first == b.first && a.second < b.second) return true;
return false;
}
};
vector<string> topKFrequent(vector<string>& words, int k)
{
unordered_map<string, int> mp;
for (auto it : words) mp[it]++;
priority_queue<pair<int, string>, vector<pair<int, string>>, cmp1> q;
int cnt = ;
for (auto it : mp)
{
pair<int, string> tmp(it.second, it.first);
if (cnt < k)
{
q.push(tmp);
}
else if (cmp(tmp, q.top()))
{
q.push(tmp);
q.pop();
}
cnt++;
}
vector<string> ret;
while (!q.empty())
{
ret.push_back(q.top().second); q.pop();
}
reverse(ret.begin(), ret.end());
return ret;
}
};
int main()
{
vector<string> v = {"i", "love", "leetcode", "i", "love", "coding"};
vector<string> ret = Solution().topKFrequent(v, );
for (auto it : ret)
{
cout << it << " ";
}
cout << endl;
return ;
}

leetcode692 Top K Frequent Words的更多相关文章

  1. [LeetCode] Top K Frequent Elements 前K个高频元素

    Given a non-empty array of integers, return the k most frequent elements. For example,Given [1,1,1,2 ...

  2. 347. Top K Frequent Elements

    Given a non-empty array of integers, return the k most frequent elements. For example,Given [1,1,1,2 ...

  3. [LeetCode] Top K Frequent Words 前K个高频词

    Given a non-empty list of words, return the k most frequent elements. Your answer should be sorted b ...

  4. C#版(打败99.28%的提交) - Leetcode 347. Top K Frequent Elements - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...

  5. [leetcode]692. Top K Frequent Words K个最常见单词

    Given a non-empty list of words, return the k most frequent elements. Your answer should be sorted b ...

  6. [leetcode]347. Top K Frequent Elements K个最常见元素

    Given a non-empty array of integers, return the k most frequent elements. Example 1: Input: nums = [ ...

  7. 最高频的K个单词 · Top K Frequent Words

    [抄题]: 给一个单词列表,求出这个列表中出现频次最高的K个单词. [思维问题]: 以为已经放进pq里就不能改了.其实可以改,利用每次取出的都是顶上的最小值就行了.(性质) 不知道怎么处理k个之外的数 ...

  8. Top K Frequent Elements 前K个高频元素

    Top K Frequent Elements 347. Top K Frequent Elements [LeetCode] Top K Frequent Elements 前K个高频元素

  9. 347. Top K Frequent Elements (sort map)

    Given a non-empty array of integers, return the k most frequent elements. Example 1: Input: nums = [ ...

随机推荐

  1. NOIP 2010 乌龟棋

    P1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行 NN 个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第 NN 格是终点, ...

  2. GNS3配置SecureCRT

    C:\SecureCRT\SecureCRT.exe /script D:\GNS3\DyRouter.vbs /T /telnet 127.0.0.1 %p "D:\Program Fil ...

  3. redux 简明学习

    核心概念 redux专注于状态管理,把所有的状态都存在一个对象中.核心概念包括:store.state.action.reducer [store] store是保存数据的地方,redux提供crea ...

  4. Django打造大型企业官网(五)

    4.6.切换轮播图的箭头样式以及显示和隐藏 templates/news/index.html <span class="arrow left-arrow">‹< ...

  5. 浏览器判断是否安装了ios/android客户端程序

    最近在做一个项目,该项目的前身是为mobile browser量身打造的一个网站.现在有这样一个需求: 当用户在用mobile browser浏览该网站的时候会点击一个按钮/超链接,通过这个按钮的点击 ...

  6. zipfile zip

    Python模块学习:zipfile zip文件操作 2015/05/27 · 系列教程 · zipfile 分享到:3 原文出处: DarkBull    最近在写一个网络客户端下载程序,用于下载服 ...

  7. cesm下载备注

    新版使用svn下载. 软件要求: The following are the external system and software requirements for installing and ...

  8. 【uoj35】后缀排序

    后缀数组模板题 #include<algorithm> #include<cstdlib> #include<cstring> #include<cstdio ...

  9. 关于clojurescript+phantomjs+react的一些探索

    这两天需要使用phantomjs+react生成些图片 React->Clojurescript: 最开始发现clojurescript中包裹react的还挺多: https://github. ...

  10. ExecuteNonQuery()的用法

    ExecuteNonQuery()的用法 下面我们将详细讲解如何在Page_Load()中对数据库的增加.删除.修改,最后我们再来总结一下ExecuteNonQuery(),ExecuteScalar ...