public List<Integer> topKFrequent(int[] nums, int k) {
HashMap<Integer, Integer> Freq = new HashMap<>();
for(int i : nums) {
if(count == null) {
Freq.put(i, 1);
}else {
Freq.put(i, count + 1);
}
}
PriorityQueue<Map.Entry<Integer, Integer>> minheap = new PriorityQueue<>(k,
new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare
(Map.
Entry<Integer, Integer
> a,
Map.
Entry<Integer, Integer
> b
) {
return a.getValue() - b.getValue();
}
});
for(Map.
Entry<Integer, Integer
> e
: Freq.
entrySet()) {
if(minheap.size() < k) {
minheap.offer(e);
}else {
Map.
Entry<Integer, Integer
> temp
= minheap.
peek();
if(temp.getValue() < e.getValue()) {
minheap.poll();
minheap.offer(e);
}
}
}
List<Integer> res = new ArrayList<>();
while(!minheap.isEmpty()) {
res.add(minheap.poll().getKey());
}
return res;
}