Top K Frequent Elements
来源:互联网 发布:java的函数式编程 编辑:程序博客网 时间:2024/05/17 01:52
先贴出用了heap的做法,稍后要学会用桶排序来做。
public class Solution { public List<Integer> topKFrequent(int[] nums, int k) { List<Integer> res = new LinkedList<>(); if (nums == null || nums.length == 0) { return res; } Map<Integer, Integer> map = new HashMap<>(); for (int i: nums) { if (map.containsKey(i)) { map.put(i, map.get(i) + 1); } else { map.put(i, 0); } } PriorityQueue<Pair> queue = new PriorityQueue<>(11, new Comparator<Pair>(){ @Override public int compare(Pair a, Pair b) { return a.count - b.count; } }); for (Map.Entry<Integer, Integer> entry: map.entrySet()) { queue.offer(new Pair(entry.getKey(), entry.getValue())); if (queue.size() > k) { queue.poll(); } } while (!queue.isEmpty()) { res.add(0, queue.poll().num); } return res; } class Pair{ int num; int count; public Pair (int n, int c) { num = n; count = c; } }}
0 0
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Java 加密解密技术学习之DES(对称加密学习)
- C# WinCE中DataGrid列设置(列宽 列标题等)
- String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
- Help Me with the Game
- AngularJS SQL
- Top K Frequent Elements
- NLP:基础
- Java虚拟机字节码指令
- 设计模式之禅--六大原则之单一职责原则
- Qt在Windows下的三种编程环境搭建
- 小曹学spring--Spring的事务管理难点剖析
- StringBuilder 详解 (String系列之2)
- 开始报名啦!——第二届融360“天机”金融风控大数据竞赛火热来袭
- zsh bash 切换