Java实现 LeetCode 347 前 K 个高频元素
347. 前 K 个高频元素
给定一个非空的整数数组,返回其中出现频率前 k 高的元素。
示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
示例 2:
输入: nums = [1], k = 1
输出: [1]
说明:
你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。
你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。
class Solution {//前 K 个高频元素public List<Integer> topKFrequent(int[] nums, int k) {List<Integer> list=new ArrayList();Arrays.sort(nums);int distinctLen=1;for(int i=1;i<nums.length;i++){if(nums[i]!=nums[i-1]){distinctLen++;}}int counts[]=new int[distinctLen];int order[]=new int[distinctLen];int index=0;int count=1;for(int i=1;i<nums.length;i++){if(nums[i]==nums[i-1]){count++;}else{counts[index]=count;order[index]=count;nums[index]=nums[i-1];index++;count=1;}}nums[index]=nums[nums.length-1];counts[index]=count;order[index]=count;Arrays.sort(order);int kth=order[distinctLen-k];for(int i=0;i<=index;i++){if(counts[i]>=kth){list.add(nums[i]);}}return list;}
}
Java实现 LeetCode 347 前 K 个高频元素相关推荐
- LeetCode——347. 前 K 个高频元素【最小堆实现】
LeetCode--347. 前 K 个高频元素[最小堆实现] 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例1: 输入: n ...
- Leetcode 347. 前 K 个高频元素
Leetcode 347. 前 K 个高频元素 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/top-k-freque ...
- LeetCode 347. 前 K 个高频元素(C++)*
该题在不考虑时间复杂度的要求下,可以使用哈希表来存储元素的次数,或者使用排序算法:为了提高算法的效率,考虑使用优先队列来实现大根堆. 1.题目如下: 给你一个整数数组 nums 和一个整数 k ,请你 ...
- LeetCode 347. 前 K 个高频元素(哈希/优先队列)
文章目录 1. 题目 2. 解题 2.1 哈希 2.2 优先队列 1. 题目 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], ...
- Leetcode 347.前K个高频元素
Time: 20190910 Type: Medium 题目描述 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 ...
- Leetcode 347. 前K个高频元素 解题思路及C++实现
方法一:最小堆 解题思路: 先使用一个unordered_map来遍历nums容器,得到每个元素对应的频数. 再使用最小堆,对unordered_map中的频数进行遍历,得到k个最大的频数对应的< ...
- 【LeetCode】【HOT】347. 前 K 个高频元素(哈希表+优先队列)
[LeetCode][HOT]347. 前 K 个高频元素 文章目录 [LeetCode][HOT]347. 前 K 个高频元素 package hot;import java.util.Arrays ...
- 模拟卷Leetcode【普通】347. 前 K 个高频元素
347. 前 K 个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例 1: 输入: nums = [1,1,1,2,2 ...
- 力扣347 前 K 个高频元素 -- JS
347. 前 K 个高频元素 - 力扣(LeetCode) (leetcode-cn.com) 一:使用对象进行解题,对象的属性为给定数组的元素,属性值为给定数组元素出现的次数: 二:把对象转成数组, ...
最新文章
- 20145209 2016-2017-2 《Java程序设计》第7周学习总结
- python 线性回归 统计检验 p值_SPSS 25 数学统计分析工具
- 自学python要下载什么软件-想自学Python,如何才能坚持下来?
- Scala键盘录入代码示例
- 使用poi写入doc文档中文档打不开_基于NodeJS和浏览器的PDF文档引擎——PDFKit
- 巧用css实现强制不换行、自动换行、强制换行(转)
- lrange是取出所有值并移除么_部落冲突:兵营容量提升,移除超级部队、英雄防御状态冷却时间...
- ITU-T G.1080 IPTV的体验质量(QoE)要求 (Quality of experience requirements for IPTV services)
- 移动商城第十四篇【收货地址查询、添加、更新】
- 洛谷 P2879 [USACO07JAN]区间统计Tallest Cow
- java提示程序包有问题_如何解决安装java时出现程序包有问题不能运行的问题?...
- 2018年下半年计算机软件,2018年下半年程序员真题+答案解析(全国计算机软考)上午选择+下午案例完整版.pdf...
- android 后台运行管理,Android 后台运行白名单实现保活
- 张磊:什么才是企业真正的护城河
- PAT(乙级)2020年秋季考试【答案+题解】
- Java的三种代理模式【附源码分析】
- 以太坊 geth 命令相关
- 关于Eureka注册中心启动报错的原因
- 走近后厂村程序员的真实生活:拿命换钱
- Ebook管理工具(持续更新)