题目

给一非空的单词列表,返回前 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 ≤ 集合元素数。
输入的单词均由小写字母组成。

解决方法:

class Solution {public static List<String> topKFrequent(String[] words, int k) {HashMap<String,Integer> count = new HashMap<>();for (String word : words) {Integer orDefault = count.getOrDefault(word, 0);count.put(word,++orDefault);}List<String> res = new ArrayList<>();Iterator<Map.Entry<String, Integer>> iterator = count.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<String, Integer> next = iterator.next();res.add(next.getKey());}Collections.sort(res, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return count.get(o1).equals(count.get(o2)) ? o1.compareTo(o2) : count.get(o2) - count.get(o1);}});return res.subList(0,k);}
}

注意:

compare 默认为升序排列,而我们需要的是降序排列!

参考:https://leetcode-cn.com/problems/top-k-frequent-words/

算法-----前 k 个出现次数最多的单词相关推荐

  1. JavaScript:实现给定一个句子,返回出现次数最多的单词算法(附完整源码)

    JavaScript:实现给定一个句子,返回出现次数最多的单词算法 // Given a sentence, return the most occurring word/*** @param {st ...

  2. java出现次数最多的字母_关于Java:查找字母中每个字母出现次数最多的单词

    我编写了一个程序来读取文本文件,其中每一行都是一个单词. 代码的第一部分找到以字母的每个字母开头的最长单词,并将其存储在数组中. 我希望程序执行的第二部分是为字母表中的每个字母找到该字母出现次数最多的 ...

  3. java统计每个单词单词出现的次数_Java统计英文句子中出现次数最多的单词并计算出现次数的方法...

    本文实例讲述了Java统计英文句子中出现次数最多的单词并计算出现次数的方法.分享给大家供大家参考,具体如下: import java.util.*; /** * 统计出现次数最多的单词和它出现的次数 ...

  4. 使用java,计算一段文本中出现英语单词次数最多的单词

    package cn.rrl.interview;import java.util.ArrayList; import java.util.Collections; import java.util. ...

  5. java 单词出现次数_Java统计英文句子中出现次数最多的单词并计算出现次数的方法...

    搜索热词 本文实例讲述了Java统计英文句子中出现次数最多的单词并计算出现次数的方法.分享给大家供大家参考,具体如下: import java.util.*; /** * 统计出现次数最多的单词和它出 ...

  6. 算法---------前 K 个高频元素(Java版本)

    题目 给定一个非空的整数数组,返回其中出现频率前 k 高的元素.示例 1:输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2:输入: nums = [1], ...

  7. 【C语言】英文文章出现次数最多的单词

    问题描述: 在当前目录中存在文件名为"case14.in"的文本文件,其内容为一篇英文文章(以EOF作为结束标志).现要求读取该文本文件内容,统计文章中每个单词出现的次数,并输出出 ...

  8. 统计英文字符串里重复次数最多的单词JAVA

    一次JAVA作业罢了 给定一段英文(看到内容感叹可怜的川宝倒了 我们想计算重复出现最多的单词,就会想要有两个信息 一是单词,二是单词出现的个数 HashMap提供的键值对存储方式可以很好地解决这个问题 ...

  9. python3学习笔记之三——统计英文文章中出现次数最多的单词前三

    思路:英文文章中的标点符号的处理,单词大小写的处理,再将单词通过字典的统计出现次数,最后用sorted()排序 #利用maketrans函数将标点符号映射为空格 table =str.maketran ...

最新文章

  1. Spring MVC 使用拦截器 HiddenHttpMethodFilter配置Rest风格的URL
  2. Jupyter notebook 编写scala与spark
  3. 【摩天好课推荐】1 Python简介
  4. C#新手该如何规划学习【学习路线指南】
  5. append 后如何删除_如何在STATA中合并数据文件呢?
  6. linux6同步时间,centos 6.x 同步网络时间
  7. OpenShift 4 之 GitOps(3)用Helm+ArgoCD部署应用,并保持配置同步
  8. 反应堆模式最牛的那篇论文--由solidmango执笔翻译
  9. 快速上手,教你开发第一个基于 AutoML 的量化投资决策应用
  10. Codeforces Round #467 (Div. 1): A. Save Energy!(公式)
  11. xunsearch全文检索初体验
  12. 慢查询日志分析工具mysqldumpslow
  13. python中function takes exactly_Python error TypeError: function takes exactly 1 argument (5 given)
  14. RDS2016 Multipoint Role
  15. 美丽诗文背诵-未完待续
  16. 「镁客·请讲」第六镜叶雨桐:进一步细化产品应用,做大规模场景的动态识别...
  17. 2020年 Web 开发的最佳编程语言
  18. 源码通透-mybatis源码分析以及整合spring过程
  19. java 优先队列从小到大_算法导论——辅助数据结构:优先队列(从小到大)
  20. 抓准痛点就能撬动市场!读屏时代的黑科技非它莫属了

热门文章

  1. python wxpy_wxpy
  2. windows 命令行cmd安装python matplotlib模块后pycharm显示“ModuleNotFoundError: No module named ‘matplotlib‘解决方法
  3. 英特尔的指令集体系结构_对标英特尔的RISC-V大有可为,CPU三分天下格局可期
  4. 8、计算机图形学——纹理的相关问题及解决办法
  5. VLFeat库中加extern “C“
  6. java zipinputstream_Java之解压流(ZipInputStream)
  7. 浅谈Linux的内存管理机制
  8. jspxcms bug表
  9. thinkphp3.2 学习
  10. 【C语言入门教程】3.4 循环控制语句