题目描述:

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]

示例 2:
输入: nums = [1], k = 1
输出: [1]

提示:
1 <= nums.length <= 105
k 的取值范围是 [1, 数组中不相同的元素的个数]
题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的

进阶:你所设计算法的时间复杂度 必须 优于 O(n log n) ,其中 n 是数组大小。

代码:

public class LC347 {public int[] topKFrequent(int[] nums, int k) {HashMap<Integer, Integer> map = new HashMap<>();int[] ans = new int[k];//存到hashmap中for (int num: nums){int value = map.getOrDefault(num, 0) + 1;map.put(num,value);}//找出现次数最多元素的出现的次数int maxValue = 0;Set<Map.Entry<Integer, Integer>> entries = map.entrySet();for (Map.Entry<Integer, Integer> entry : entries){maxValue = Math.max(maxValue,entry.getValue());}//循环找出现最多的前k个数while (k > 0){for (Map.Entry<Integer, Integer> entry : entries){if (entry.getValue() == maxValue){ans[k - 1] = entry.getKey();k--;}}maxValue--;}return ans;}public static void main(String[] args) {LC347 obj = new LC347();int[] ans = obj.topKFrequent(new int[]{1,1,1,2,2,3}, 2);for (int num : ans){System.out.println(num);}}
}

[菜鸟训练]347. 前 K 个高频元素相关推荐

  1. 【LeetCode】【HOT】347. 前 K 个高频元素(哈希表+优先队列)

    [LeetCode][HOT]347. 前 K 个高频元素 文章目录 [LeetCode][HOT]347. 前 K 个高频元素 package hot;import java.util.Arrays ...

  2. LeetCode——347. 前 K 个高频元素【最小堆实现】

    LeetCode--347. 前 K 个高频元素[最小堆实现] 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例1: 输入: n ...

  3. 力扣347 前 K 个高频元素 -- JS

    347. 前 K 个高频元素 - 力扣(LeetCode) (leetcode-cn.com) 一:使用对象进行解题,对象的属性为给定数组的元素,属性值为给定数组元素出现的次数: 二:把对象转成数组, ...

  4. Suzy找到实习了吗Day 13 | 栈和队列结束啦 239. 滑动窗口最大值,347. 前 K 个高频元素

    day 13 239. 滑动窗口最大值 Python的Deque模块详解 solution 我复制的,好难不会写 347. 前 K 个高频元素(一刷我没有用栈,用的哈希法) solution(hash ...

  5. Leetcode 347. 前 K 个高频元素

    Leetcode 347. 前 K 个高频元素 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/top-k-freque ...

  6. Java实现 LeetCode 347 前 K 个高频元素

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

  7. 代码随想录算法训练营day13 | 239. 滑动窗口最大值 | 347.前 K 个高频元素

    一.239. 滑动窗口最大值 from collections import dequeclass MyQueue: #单调队列(从大到小def __init__(self):self.queue = ...

  8. 力扣347.前 K 个高频元素(优先队列)

    347. 前 K 个高频元素 本题的关键点是对map中的value进行排序. 题目中涉及前几个,考虑优先队列 优先队列要通过lamda表达式写清楚是大数在顶还是小数在顶 逆序: PriorityQue ...

  9. 模拟卷Leetcode【普通】347. 前 K 个高频元素

    347. 前 K 个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例 1: 输入: nums = [1,1,1,2,2 ...

最新文章

  1. 数组名和数组名取地址的区别
  2. JavaScript 内置对象(二):Date 对象(构造函数、属性和方法)
  3. tw-wr641g ttl串口
  4. 贪心策略构筑“奶牛铁塔”(洛谷P2676题题解,Java语言描述)
  5. tomcat有集成mysql嘛_jira+tomcat+mysql的集成
  6. 力扣题目——566. 重塑矩阵
  7. asyncio 文件io高并发_python教程:使用 async 和 await 协程进行并发编程
  8. crontab简单小结(实用)
  9. 链家网页爬虫_R爬虫小白入门:Rvest爬链家网+分析(一)
  10. redis之消息订阅发布
  11. xp母盘制作流程+QQDLL修改和系统文件DLL修改(转)
  12. 红linux系统,红帽linux系统官方下载-红帽linux系统32位v9.0 完整版 - 极光下载站
  13. 【数据集】语义分割常用的数据集: Pascal VOC、Cityscape、MSCOCO
  14. 我的团长我的团第四十三集
  15. webRTC中语音降噪模块ANS细节详解(三)
  16. 四川职业技术学院linux,2019年四川交通职业技术学院单招中职(信息技术一类)专业技能测试大纲...
  17. GLSL 实现 FXAA 后处理效果
  18. win10豆沙绿护眼色
  19. ros学习(2-2):ros节点创建(python)
  20. 永久免费的英文字体生成软件,例:

热门文章

  1. 用C++实现数据总线的方法系列(上):基本概念同步队列
  2. Scratch-陶陶摘苹果
  3. 项管:沟通管理和干系人管理
  4. php 百度收录api_百度移动资源天级收录API提交-在线工具
  5. 矩阵乘法——矩阵快速幂
  6. 就聊聊不少小IT公司的技术总监
  7. 常用的图像质量评估方法
  8. [USACO 2.2.1] Preface Numbering
  9. Python简单GUI(模拟放大镜)
  10. linux开发板通过网线连接电脑(win10)连接网络问题