[菜鸟训练]347. 前 K 个高频元素
题目描述:
给你一个整数数组 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 个高频元素相关推荐
- 【LeetCode】【HOT】347. 前 K 个高频元素(哈希表+优先队列)
[LeetCode][HOT]347. 前 K 个高频元素 文章目录 [LeetCode][HOT]347. 前 K 个高频元素 package hot;import java.util.Arrays ...
- LeetCode——347. 前 K 个高频元素【最小堆实现】
LeetCode--347. 前 K 个高频元素[最小堆实现] 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例1: 输入: n ...
- 力扣347 前 K 个高频元素 -- JS
347. 前 K 个高频元素 - 力扣(LeetCode) (leetcode-cn.com) 一:使用对象进行解题,对象的属性为给定数组的元素,属性值为给定数组元素出现的次数: 二:把对象转成数组, ...
- Suzy找到实习了吗Day 13 | 栈和队列结束啦 239. 滑动窗口最大值,347. 前 K 个高频元素
day 13 239. 滑动窗口最大值 Python的Deque模块详解 solution 我复制的,好难不会写 347. 前 K 个高频元素(一刷我没有用栈,用的哈希法) solution(hash ...
- Leetcode 347. 前 K 个高频元素
Leetcode 347. 前 K 个高频元素 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/top-k-freque ...
- Java实现 LeetCode 347 前 K 个高频元素
347. 前 K 个高频元素 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输 ...
- 代码随想录算法训练营day13 | 239. 滑动窗口最大值 | 347.前 K 个高频元素
一.239. 滑动窗口最大值 from collections import dequeclass MyQueue: #单调队列(从大到小def __init__(self):self.queue = ...
- 力扣347.前 K 个高频元素(优先队列)
347. 前 K 个高频元素 本题的关键点是对map中的value进行排序. 题目中涉及前几个,考虑优先队列 优先队列要通过lamda表达式写清楚是大数在顶还是小数在顶 逆序: PriorityQue ...
- 模拟卷Leetcode【普通】347. 前 K 个高频元素
347. 前 K 个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例 1: 输入: nums = [1,1,1,2,2 ...
最新文章
- 数组名和数组名取地址的区别
- JavaScript 内置对象(二):Date 对象(构造函数、属性和方法)
- tw-wr641g ttl串口
- 贪心策略构筑“奶牛铁塔”(洛谷P2676题题解,Java语言描述)
- tomcat有集成mysql嘛_jira+tomcat+mysql的集成
- 力扣题目——566. 重塑矩阵
- asyncio 文件io高并发_python教程:使用 async 和 await 协程进行并发编程
- crontab简单小结(实用)
- 链家网页爬虫_R爬虫小白入门:Rvest爬链家网+分析(一)
- redis之消息订阅发布
- xp母盘制作流程+QQDLL修改和系统文件DLL修改(转)
- 红linux系统,红帽linux系统官方下载-红帽linux系统32位v9.0 完整版 - 极光下载站
- 【数据集】语义分割常用的数据集: Pascal VOC、Cityscape、MSCOCO
- 我的团长我的团第四十三集
- webRTC中语音降噪模块ANS细节详解(三)
- 四川职业技术学院linux,2019年四川交通职业技术学院单招中职(信息技术一类)专业技能测试大纲...
- GLSL 实现 FXAA 后处理效果
- win10豆沙绿护眼色
- ros学习(2-2):ros节点创建(python)
- 永久免费的英文字体生成软件,例: