leetcode 347. Top K Frequent Elements
来源:互联网 发布:茅台葡萄酒 知乎 编辑:程序博客网 时间:2024/06/07 16:55
本题要求返回前k个频率的数字
For example,
Given [1,1,1,2,2,3]
and k = 2, return [1,2]
.
我们的思路是构建一个map集合,将所有数字的出现次数统计并利用map的比较器进行排序,最后新建一个list1集合将结果返回;代码如下:
class Solution { public List<Integer> topKFrequent(int[] nums, int k) { Map<Integer, Integer> map = new HashMap<>(); for(int key : nums){ if(map.containsKey(key)){ map.put(key, (Integer)map.get(key) + 1 ); }else{ map.put(key, 1); } } List<Map.Entry<Integer,Integer>> list = new ArrayList<Map.Entry<Integer,Integer>>(map.entrySet()); //然后通过比较器来实现排序 Collections.sort(list,new Comparator<Map.Entry<Integer,Integer>>() { //降序排序 public int compare(Map.Entry<Integer,Integer > o1, Map.Entry<Integer, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); List< Integer> list1 = new ArrayList<>(); Iterator<Map.Entry<Integer, Integer>> it = list.iterator(); while(it.hasNext()&&k>0){ Map.Entry<Integer,Integer> en = it.next(); list1.add(en.getKey()); k--; } return list1; }}
阅读全文
0 0
- LeetCode #347. Top K Frequent Elements
- [leetcode] 347. Top K Frequent Elements
- LeetCode 347. Top K Frequent Elements
- <LeetCode OJ> 347. Top K Frequent Elements
- LeetCode 347. Top K Frequent Elements
- Leetcode 347. Top K Frequent Elements
- LeetCode Everyday: 347. Top K Frequent Elements
- 【leetcode】347. Top K Frequent Elements
- leetcode 347.Top K Frequent Elements
- leetcode 347. Top K Frequent Elements
- leetcode 347. Top K Frequent Elements
- [leetcode]347. Top K Frequent Elements
- LeetCode-347.Top K Frequent Elements
- Leetcode 347.Top K Frequent Elements
- Leetcode 347. Top K Frequent Elements
- 【LeetCode】347. Top K Frequent Elements
- [leetcode] 347. Top K Frequent Elements
- leetcode-java-347. Top K Frequent Elements
- dom学习
- ZipInputStream和RSA算法的纠葛
- selenium 万能的xpath
- 在Windows x64中加载驱动
- 安卓网络请求封装--Android-Async-Http
- leetcode 347. Top K Frequent Elements
- 深入理解Java中Synchronized(对象锁)和Static Synchronized(类锁)的区别
- mysql常用命令
- 如何关闭浏览器的HSTS功能
- 11月13日云栖精选夜读:阿里云中间件产品科技普惠企业,满足多场景需求
- angular学习
- java学习笔记(11)--网络通信
- 【JavaSE】作业练习1111
- SQL 将查询结果插入到新增表