public List<Integer> topKFrequent(int[] nums, int k) {
   List<Integer> list = new ArrayList<Integer>();
        HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();

        PriorityQueue<Map.Entry<Integer,Integer>> pq = new PriorityQueue<Map.Entry<Integer,Integer>>(new Comparator<Map.Entry<Integer,Integer>>(){
            public int compare(Map.Entry<Integer,Integer> e1, Map.Entry<Integer,Integer> e2){
                return e1.getValue()-e2.getValue();
            }
        });

        for(int i=0;i<nums.length;i++){
            if(!map.containsKey(nums[i])){
                map.put(nums[i],1);
            }
                map.put(nums[i],map.get(nums[i])+1);
        }


        for(Map.Entry<Integer,Integer> entry:map.entrySet()){
            if(pq.size()<k){
                pq.offer(entry);
            }
            else if(pq.peek().getValue()<entry.getValue()){
                pq.poll();
                pq.offer(entry);
            }
        }

        for(Map.Entry<Integer,Integer> entry :pq)
            list.add(entry.getKey());
        return list;
    }

results matching ""

    No results matching ""