LeetCode Top K Frequent Elements
题意:给出一个数组,求出前k个出现频率最多的数
思路:首先统计每个元素的次数(用Map),然后用堆排序只统计前k个(PriorityQueue)
代码如下:
class Solution
{class Pair implements Comparable<Pair>{int key, value;public int compareTo(Pair b){return value - b.value;}}public List<Integer> topKFrequent(int[] nums, int k){Map<Integer, Integer> map = new HashMap<Integer, Integer>();for (int i = 0; i < nums.length; i++){if (map.containsKey(nums[i])){map.put(nums[i], map.get(nums[i]) + 1);}else{map.put(nums[i], 1);}}Comparator<Pair> cmp = new Comparator<Pair>(){public int compare(Pair a, Pair b){return a.value - b.value;}};Queue<Pair> queue = new PriorityQueue<Pair>(k, cmp);for(Map.Entry<Integer, Integer> ele: map.entrySet()){Pair p = new Pair();p.key = ele.getKey(); p.value = ele.getValue();if (queue.size() < k){queue.add(p);}else{if (p.compareTo(queue.peek()) > 0){queue.poll();queue.offer(p);}}}List<Integer> res = new ArrayList<Integer>();while (!queue.isEmpty()){Pair p = queue.poll();res.add(p.key);}Collections.sort(res);return res;}}
LeetCode Top K Frequent Elements相关推荐
- Leetcode: Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements.For example, Given [1,1,1,2 ...
- 【LeetCode 剑指offer刷题】查找与排序题12:Top K Frequent Elements
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Top K Frequent Elements Given a non-empty array of integer ...
- [leetcode]347. Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements. For example, Given [1,1,1, ...
- Leetcode - 347. Top K Frequent Elements(堆排序)
Given a non-empty array of integers, return the k most frequent elements. Example 1: Input: nums = [ ...
- [swift] LeetCode 347. Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements. For example, Given [1,1,1, ...
- leetcode347 - Top K Frequent Elements - medium
Given a non-empty array of integers, return the k most frequent elements. Example 1: Input: nums = [ ...
- leetcode 347. Top K Frequent Elements | 347. 前 K 个高频元素(大根堆)
题目 https://leetcode.com/problems/top-k-frequent-elements/ 题解 参考:leetcode 215. Kth Largest Element in ...
- 力扣347:前k个高频元素---leetcode347:Top K Frequent Elements
leetcode347题目链接:https://leetcode.cn/problems/top-k-frequent-elements 目录 一.题目描述 二.思路 1.什么是优先级队列呢? 2.什 ...
- 347. Top K Frequent Elements 前 K 个高频元素
给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], ...
最新文章
- python __setattr__ , __getattr__
- SQLYog快捷键大全
- Spring Boot 2.4.0 全新发布,还不快来实战
- IDEA中Alt + Insert快捷键定制生成类方法
- 内容页响应母版页控件的事件
- 手机号星号_word把个人信息中的手机号其中四位设成星号的操作步骤图解
- Java出现OutOfMemoryError
- c语言多字符和宽字符,2.1.5 多字节字符和宽字符
- 运动目标跟踪(十一)--CN及CSK跟踪原理
- ScrollView嵌套Tablaout与ViewPager联动(标签)(ScrollView与ViewPager冲突)
- node scripts/install.js 安装失败解决办法
- Python小工具:批量给视频加水印!
- pg数据库百分比处理
- ESP8266AT固件获取时间和连接心知天气
- debian配置网卡
- DB SQL mysql
- 笔记本电脑属于个人计算机吗,黄真真:笔记本电脑属于个人计算机的一种形式莫?...
- selenium三种等待时间之强制等待
- ecshop $lang
- ImportError: cannot import name ‘VGG16‘ from ‘keras.applications‘
热门文章
- VBA在EXCEL中创建图形线条
- [转]关于int整形变量占有字节问题
- C# WinForm 在窗口菜单上显示已打开窗体的标题及其窗体的排列
- python做好的程序如何变成小程序-使用python编写简单的小程序编译成exe跑在win10上...
- python手机版下载3.7.2-Python3.5.2
- python笔记基础-python学习笔记(一)python简介和基础
- 怎么自学python编程-零基础如何自学编程?
- 怎么安装python3-centos编译安装python3怎么做?
- 为什么叫python编程-Python这么火,为什么说它不是未来的编程语言?
- 如何自学python编程-零基础如何自学编程?