347. 前 K 个高频元素
先用hashMap保存频率
再用根据频率用堆排序 (最大频率堆)
获得前面的k个元素即可
class Solution {
public int[] topKFrequent(int[] nums, int k) {
HashMap<Integer, Integer> hashMap = new HashMap<>();
for (int num : nums) {
hashMap.put(num,hashMap.getOrDefault(num, 0)+1);
}
PriorityQueue<Integer> queue = new PriorityQueue<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return hashMap.get(o1) > hashMap.get(o2) ? -1 : 1;
}
});
int[] ans=new int[k];
queue.addAll(hashMap.keySet());
for (int i = 0; i < k; i++) {
ans[i]=queue.poll();
}
return ans;
}
}