1677个高频单词_3500高频词汇表

1677个高频单词_3500高频词汇表给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。 注意,按字母顺序 “i” 在 “love” 之前。 示例 2:输入: [“the”, “day”, “is

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给一非空的单词列表,返回前 k 个出现次数最多的单词。

返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。

示例 1:

输入: ["i", "love", "leetcode", "i", "love", "coding"], k = 2
输出: ["i", "love"]
解析: "i""love" 为出现次数最多的两个单词,均为2次。
    注意,按字母顺序 "i""love" 之前。
 

示例 2:

输入: ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"], k = 4
输出: ["the", "is", "sunny", "day"]
解析: "the", "is", "sunny""day" 是出现次数最多的四个单词,
    出现次数依次为 4, 3, 2 和 1 次。
 

注意:

假定 k 总为有效值, 1 ≤ k ≤ 集合元素数。
输入的单词均由小写字母组成。

扩展练习:

尝试以 O(n log k) 时间复杂度和 O(n) 空间复杂度解决。


class Solution { 

public:
struct  Node{ 

string s;
int val;
Node(string s,int v){ 

this->s = s,val = v;
}
bool operator>(const Node &b)const{ 

if(val == b.val)return s < b.s;
return val > b.val;
}
};
vector<string> topKFrequent(vector<string>& words, int k) { 

unordered_map<string,int>m;
for(auto &a : words){ 

if(!m.count(a))m[a] = 0;
m[a] ++;
}
priority_queue<Node,vector<Node>,greater<Node> >p;
unordered_map<string,int>::iterator it;
for(it = m.begin();it != m.end();it ++){ 

Node a(it->first,it->second);
if(p.size() == k){ 

if(a > p.top()){ 

p.pop();
p.push(a);
}
}
else p.push(a);
}
vector<string>ans;
while(p.size()){ 

ans.push_back(p.top().s);
p.pop();
}
reverse(ans.begin(),ans.end());
return ans;
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169070.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • sublime3激活码[最新免费获取]

    (sublime3激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlS32PGH0SQB-eyJsaWN…

  • SQL中几个常用的排序函数

    SQL中几个常用的排序函数

    2021年11月26日
  • Mysql函数FIND_IN_SET()的使用方法

    Mysql函数FIND_IN_SET()的使用方法

    2021年10月24日
  • 稀疏数组(最详解)「建议收藏」

    稀疏数组(最详解)「建议收藏」概念当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值;把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模 如下图:左边是原始数组,右边是稀疏数组代码实现publicclassSparseArray{publicstaticvoidmain(String[]args){//创建一个二维数组11*110:没有棋子,1:黑..

    2022年10月26日
  • 如何查看jdk版本号_jdk与tomcat版本

    如何查看jdk版本号_jdk与tomcat版本背景:最近有一个springboot项目要发布到很老的一台服务器上,该台服务器是XP200232位系统,并且springboot微服务需要连接服务器上的accessdb,因此需要有对应的jdk,看了看网上的查看JDK版本很多都不靠谱(中文技术网站都是相互抄袭),特地总结了一下:方法1:最基本的,下载jdk的时候应该知道自己下的什么版本,在安装jdk的时候就在安装目录里写清楚版本号以便将…

  • SecureCRT的使用方法和技巧(详细使用教程)[通俗易懂]

    SecureCRT的使用方法和技巧(详细使用教程)[通俗易懂]随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧VanDykeCRT和VanDyke…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号