import java.util.*; public class Solution { public List<Integer> topKFrequent(int[] nums, int k) { HashMap<Integer, Integer> numberOccur = getNumOccur(nums); PriorityQueue<Integer> priorityQueue = new PriorityQueue<>((o1, o2) -> numberOccur.get(o1) - numberOccur.get(o2)); Set<Map.Entry<Integer, Integer>> entries = numberOccur.entrySet(); for(Map.Entry<Integer, Integer> entry:entries){ priorityQueue.add(entry.getKey()); if(priorityQueue.size()>k){ priorityQueue.poll(); } } ArrayList<Integer> result = new ArrayList<>(); for (int i = 0; i < k; i++) { result.add(priorityQueue.poll()); } Collections.reverse(result); return result; } private HashMap<Integer, Integer> getNumOccur(int[] nums) { HashMap<Integer, Integer> numberOccur = new HashMap<>(); for (int num : nums) { if (numberOccur.get(num) == null) { numberOccur.put(num, 0); } numberOccur.put(num, numberOccur.get(num) + 1); } return numberOccur; } }
Top K Frequent Elements
猜你喜欢
转载自kaqi.iteye.com/blog/2298696
今日推荐
周排行