美文网首页
347. 前 K 个高频元素

347. 前 K 个高频元素

作者: 编程小王子AAA | 来源:发表于2020-07-07 00:11 被阅读0次

    给定一个非空的整数数组,返回其中出现频率前 k 高的元素。

    示例 1:

    输入: nums = [1,1,1,2,2,3], k = 2
    输出: [1,2]
    示例 2:

    输入: nums = [1], k = 1
    输出: [1]


    class Solution {
        public int[] topKFrequent(int[] nums, int k) {
            List<Integer> res=new ArrayList<>();
            Map<Integer,Integer> map=new HashMap<>();
            for(int num:nums){
                map.put(num,map.getOrDefault(num,0)+1);
            }
            List<Integer>[] list=new List[nums.length+1];
            for(int key:map.keySet()){
                int i=map.get(key);
                if(list[i]==null){
                    list[i]=new ArrayList();
                }
                list[i].add(key);
            }
            for(int i=list.length-1;i>=0 && res.size()<k;i--){
                if(list[i]==null) continue;
                res.addAll(list[i]);
            }
            int[] ans=new int[k];
            for(int i=0;i<k;i++){
                ans[i]=res.get(i);
            }
            return ans;
        }
    }
    

    相关文章

      网友评论

          本文标题:347. 前 K 个高频元素

          本文链接:https://www.haomeiwen.com/subject/yunnqktx.html