前K个高频单词

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

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

示例 1:

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

思路+代码+注释:

public List<String> topKFrequent(String[] words, int k) {/*思路:使用hashMap统计每个单词出现的次数,然后堆排序按照次数从高到低进行排序,次数相同的在按照字母顺序排序*/Map<String,Integer> map=new HashMap<>();for (String s:words) {if (map.containsKey(s)){map.put(s,map.get(s)+1);}else {map.put(s,1);}}PriorityQueue<Map.Entry> priorityQueue=new PriorityQueue<>(new Comparator<Map.Entry>() {@Overridepublic int compare(Map.Entry o1, Map.Entry o2) {Integer n1=(Integer)o1.getValue();Integer n2=(Integer)o2.getValue();if (n1.equals(n2)){String s1=(String)o1.getKey();String s2=(String)o2.getKey();return s1.compareTo(s2);}else {return n2-n1;}}});priorityQueue.addAll(map.entrySet());List<String> res=new ArrayList<>();for (int i = 0; i < k; i++) {res.add((String) priorityQueue.poll().getKey());}return res;}

692. 前K个高频单词相关推荐

  1. 用Java输出高频词_Java实现 LeetCode 692 前K个高频单词(map的应用)

    692. 前K个高频单词 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序.如果不同的单词有相同出现频率,按字母顺序排序. 示例 1: 输入: [&qu ...

  2. 力扣692.前K个高频单词

    692.前K个高频单词 思路1: 创建HashMap,并把单词以及其频率存进HashMap中 将keySet()存进List链表中,并用Collections的sort进行逻辑的排序 再创建满足题意的 ...

  3. leetcode 692. 前K个高频单词

    题目 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序.如果不同的单词有相同出现频率,按字母顺序排序. 示例 1: 输入: ["i" ...

  4. LeetCode 692. 前K个高频单词(优先队列)

    1. 题目 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序. 如果不同的单词有相同出现频率,按字母顺序排序. 示例 1: 输入: ["i&q ...

  5. 692前K个高频单词(哈希表+排序)

    1.题目描述 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序.如果不同的单词有相同出现频率,按字母顺序排序. 注意: 假定 k 总为有效值, 1 ≤ ...

  6. 2022-1-29 Leetcode 692.前K个高频单词

    这道题中学到的几个知识点: 优先队列的排序规则是什么? The comparison function used to determine whether one element is smaller ...

  7. leetcode 前K个高频单词

    692. 前K个高频单词 题目 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序.如果不同的单词有相同出现频率,按字母顺序排序. 示例1 输入: [&q ...

  8. 算法题——前K个高频单词

    每日刷题LeetCode--692. 前K个高频单词 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序.如果不同的单词有相同出现频率,按字母顺序排序. ...

  9. 前k个高频单词【Java】

    前k个高频单词 问题描述 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序.如果不同的单词有相同出现频率,按字母顺序排序. 示例 1: 输入: [&qu ...

最新文章

  1. 24本实体书包邮免费送!
  2. 事件相机特征跟踪-模板跟踪方法
  3. Lync日常维护之四:部分管理操作
  4. Python Django开发案例:显示登录页面
  5. 计算机有什么知识,计算机基础知识有什么
  6. 必填字段的自定义JSF验证器
  7. 25 MM配置-采购-无物料主数据的项目输入帮助
  8. java knn文本分类算法_使用KNN算法的文本分类.PDF
  9. OpenCV-图像像素遍历操作的三种方法对比(程序提速)
  10. C#中调用PDFCreator生成PDF文件
  11. django打开html页面跳转,django创建最简单HTML页面跳转方法
  12. 当今几大主流服务器的操作系统简介
  13. 线性可分支持向量机、线性支持向量机、非线性支持向量机的区别
  14. Python网络爬虫及数据可视化(软科中国大学专业排名|计算机科学与技术)
  15. 3ds Max: Advanced Materials 3DS Max 教程之高级材质 Lynda课程中文字幕
  16. [转] Scalers:刻意练习的本质就是持续行动+刻意学习
  17. 【Neo4j构建知识图谱】Python调用cypher语言(1):只需5行代码一次性完成节点、关系、属性的创建
  18. 使用ajax完成图片上传
  19. 正版steam gta5如何免登录教程
  20. Unity HybridRender 视锥体裁剪

热门文章

  1. stinger 小型机器人_铁甲大百科——史上最全格斗机器人类型解析,哪类机器人最酷炫?...
  2. Orixcom联手Megaport在迪拜提供直接云连接
  3. 第2章 实体图书馆、数字图书馆
  4. (已解决)Windows使用transmac制作macos启动U盘重启按option不能识别的问题
  5. 从《美国工厂》看外企文化
  6. super901成员展
  7. 散户做外汇买卖怎样稳定的获利
  8. 走进语音识别中的WFST(二)
  9. Win7安装VS2015报错,找不到JavaScriptxxxx.msi问题
  10. 机器人的振动控制问题