Top K Frequent Elements
来源:互联网 发布:淘宝卖家破损补寄 编辑:程序博客网 时间:2024/05/16 15:01
Given a non-empty array of integers, return the k most frequent elements.
For example,
Given [1,1,1,2,2,3]
and k = 2, return [1,2]
.
Note:
- You may assume k is always valid, 1 ≤ k ≤ number of unique elements.
- Your algorithm's time complexity must be better than O(n log n), where n is the array's size.
public class Solution { class Node{ int fre; int val; public Node( int val, int fre){ this.val = val; this.fre = fre; } } public List<Integer> topKFrequent(int[] nums, int k) { List<Integer> list = new ArrayList<Integer>(); HashMap<Integer, Integer> hashmap = new HashMap<Integer, Integer>(); for(int i=0; i<nums.length; i++){ Integer num = hashmap.get(nums[i]); if(num == null){ hashmap.put(nums[i], 1); } else { hashmap.put(nums[i], num+1); } } PriorityQueue<Node> pq = new PriorityQueue<Node>(k, new Comparator<Node>(){ @Override public int compare(Node a, Node b){ return a.fre - b.fre; } }); for(Integer key : hashmap.keySet()){ int fre = hashmap.get(key); if(pq.size()>=k){ if(fre > pq.peek().fre){ pq.poll(); pq.add(new Node(key.intValue(), fre)); } } else { pq.add(new Node(key.intValue(), fre)); } } while(pq.size()>0){ list.add(0,pq.poll().val); } return list; }}
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技术达人成长记<3>WEB架构师成长之路(6年)
- 最后的王 Birkebeinerne (2016)
- 杭电oj编码2008
- 特殊的类型转换(单参构造,运算符重载)
- foreach()中的yield的使用
- Top K Frequent Elements
- 为AndroidStudio设置自定义类注释
- 杭电oj编码2007
- var的用法
- 常见拒绝服务型攻击原理及行为特征
- Leetcode 33. Search in Rotated Sorted Array
- Css与html三种结合方式 Css四种选择器
- Vagrant安装
- 杭电oj编码2006