topKFrequent(PriorityQueue实现)

来源:互联网 发布:淘宝售后申请时间 编辑:程序博客网 时间:2024/05/21 21:49
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;    }}
0 0
原创粉丝点击