[leetCode刷题笔记]347. Top K Frequent Elements

来源:互联网 发布:python scala 编辑:程序博客网 时间:2024/05/08 17:02
public class Solution {    public List<Integer> topKFrequent(int[] nums, int k) {        // frequency array        List<Integer>[] freList = new List[nums.length + 1];        // key: value in nums[] value: frequency        Map<Integer, Integer> freMap = new HashMap<Integer, Integer>();                for (int ele : nums) {            freMap.put(ele, freMap.getOrDefault(ele, 0) + 1);        }                        for (int key : freMap.keySet()) {            int freq = freMap.get(key);            if (freList[freq] == null) {                freList[freq] = new LinkedList<Integer>();            }             freList[freq].add(key);        }        List<Integer> res = new LinkedList<Integer>();                for (int i = freList.length - 1; i >= 0 && res.size() < k; i--  ) {            if (freList[i] != null) {                res.addAll(freList[i]);                            }        }        return res;    }}