347. Top K Frequent Elements

来源:互联网 发布:为什么起名字叫淘宝 编辑:程序博客网 时间:2024/05/16 07:22

题目:https://leetcode.com/problems/top-k-frequent-elements/

代码:

public List<Integer> topKFrequent(int[] nums, int k) {    List<Integer>[] bucket = new List[nums.length + 1];    Map<Integer, Integer> frequencyMap = new HashMap<Integer, Integer>();    for (int n : nums) {        frequencyMap.put(n, frequencyMap.getOrDefault(n, 0) + 1);    }    for (int key : frequencyMap.keySet()) {        int frequency = frequencyMap.get(key);        if (bucket[frequency] == null) {            bucket[frequency] = new ArrayList<>();        }        bucket[frequency].add(key);    }    List<Integer> res = new ArrayList<>();    for (int pos = bucket.length - 1; pos >= 0 && res.size() < k; pos--) {        if (bucket[pos] != null) {            res.addAll(bucket[pos]);        }    }    return res;}29ms没想出来,以上是dicuss里面的一种答案
0 0
原创粉丝点击