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 个高频元素相关推荐

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

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

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

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

  3. LeetCode 347. 前 K 个高频元素(C++)*

    该题在不考虑时间复杂度的要求下,可以使用哈希表来存储元素的次数,或者使用排序算法:为了提高算法的效率,考虑使用优先队列来实现大根堆. 1.题目如下: 给你一个整数数组 nums 和一个整数 k ,请你 ...

  4. LeetCode 347. 前 K 个高频元素(哈希/优先队列)

    文章目录 1. 题目 2. 解题 2.1 哈希 2.2 优先队列 1. 题目 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], ...

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

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

  6. Leetcode 347. 前K个高频元素 解题思路及C++实现

    方法一:最小堆 解题思路: 先使用一个unordered_map来遍历nums容器,得到每个元素对应的频数. 再使用最小堆,对unordered_map中的频数进行遍历,得到k个最大的频数对应的< ...

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

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

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

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

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

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

最新文章

  1. 20145209 2016-2017-2 《Java程序设计》第7周学习总结
  2. python 线性回归 统计检验 p值_SPSS 25 数学统计分析工具
  3. 自学python要下载什么软件-想自学Python,如何才能坚持下来?
  4. Scala键盘录入代码示例
  5. 使用poi写入doc文档中文档打不开_基于NodeJS和浏览器的PDF文档引擎——PDFKit
  6. 巧用css实现强制不换行、自动换行、强制换行(转)
  7. lrange是取出所有值并移除么_部落冲突:兵营容量提升,移除超级部队、英雄防御状态冷却时间...
  8. ITU-T G.1080 IPTV的体验质量(QoE)要求 (Quality of experience requirements for IPTV services)
  9. 移动商城第十四篇【收货地址查询、添加、更新】
  10. 洛谷 P2879 [USACO07JAN]区间统计Tallest Cow
  11. java提示程序包有问题_如何解决安装java时出现程序包有问题不能运行的问题?...
  12. 2018年下半年计算机软件,2018年下半年程序员真题+答案解析(全国计算机软考)上午选择+下午案例完整版.pdf...
  13. android 后台运行管理,Android 后台运行白名单实现保活
  14. 张磊:什么才是企业真正的护城河
  15. PAT(乙级)2020年秋季考试【答案+题解】
  16. Java的三种代理模式【附源码分析】
  17. 以太坊 geth 命令相关
  18. 关于Eureka注册中心启动报错的原因
  19. 走近后厂村程序员的真实生活:拿命换钱
  20. Ebook管理工具(持续更新)

热门文章

  1. TFS+Jenkins CI/CD
  2. 使用计算机录音需要准备什么,初入录音圈,你需要知道些什么?
  3. 环路补偿之单零点分析 ---- 以“反相放大器”为例分析
  4. ROS aubo i5 noetic版本 机械臂 Ubuntu 20.04
  5. 雅思词汇list1-list12总结
  6. 《Web安全之机器学习入门》笔记第一章
  7. HTML <s> 标签
  8. 【干货分享】前端面试知识点锦集01(HTML篇)——附答案
  9. 第 4 章 容器 - 023 - 两种进入容器的方法
  10. H5实现类似微信可拖拽左右吸边浮动按钮