LeetCode347

    技术2022-07-29  71

    class Solution { public int[] topKFrequent(int[] nums, int k) { HashMap<Integer, Integer> map = new HashMap<>(); for(int num : nums){ if(map.containsKey(num)){ map.put(num,map.get(num)+1); } else{ map.put(num,1); } } PriorityQueue<Integer> heap = new PriorityQueue<>( ((o1, o2) -> map.get(o1) - map.get(o2)) ); for(int num : map.keySet()){ if(heap.size() < k ){ heap.add(num); } else if(map.get(num) > map.get(heap.peek())){ heap.poll(); heap.add(num); } } int [] result = new int[heap.size()]; for (int i = 0; i < result.length; i++) { result[i] = heap.poll(); } return result; } }

     

    Processed: 0.010, SQL: 10