import java.util.*;
public class Solution {
public List<Integer> topKFrequent(int[] nums, int k) {
HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();
for(int num : nums) {
if(map.get(num) != null) {
map.put(num, map.get(num) + 1);
} else {
map.put(num, 1);
}
}
PriorityQueue<Map.Entry<Integer,Integer>> kFrequent = new PriorityQueue<>(k,
new Comparator<Map.Entry<Integer,Integer>>() {
public int compare(Map.Entry<Integer, Integer> o1,
Map.Entry<Integer, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());//降序
}
});
for(Map.Entry<Integer,Integer> mapEntry : map.entrySet()) {
kFrequent.offer(mapEntry);
}
List<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < k; i++){
list.add(kFrequent.poll().getKey());
}
return list;
}
}
topKFrequent(PriorityQueue实现)
最新推荐文章于 2023-02-21 20:27:53 发布