zoukankan      html  css  js  c++  java
  • 347. Top K Frequent Elements

        /*
         * 347. Top K Frequent Elements
         * 2016-7-11 by Mingyang
         * 这个题目基本思路非常简单,就是把所有的值一个一个的放到Priority Queue里面去
         * 然后继续一个一个的弹出来,关键的点是需要把May的每一个Entry都传入到queue里面
         */
        public List<Integer> topKFrequent(int[] nums, int k) {
            HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
            for(int num: nums){
                map.put(num, map.containsKey(num)? map.get(num) + 1 : 1);
            }
            Queue<Map.Entry<Integer, Integer>> queue = new PriorityQueue<Map.Entry<Integer, Integer>>(k,
                    new Comparator<Map.Entry<Integer, Integer>>() {
                        @Override
                        public int compare(Map.Entry<Integer, Integer> i1, Map.Entry<Integer, Integer> i2) {
                            return i2.getValue() - i1.getValue();
                        }
                    });
            queue.addAll(map.entrySet());
            List<Integer> res = new ArrayList<Integer>();
            for(int i = 0; i < k; i++){
                res.add(queue.poll().getKey());
            }
            return res;
        }
  • 相关阅读:
    自控力和专注力是执行力的保证
    今宵又除夕
    买了小米盒子三代
    电容相位滞后?电感超前
    lcr电桥浅谈
    ad 线束和网络
    浅谈 R_S触发器
    NTSC PAL 介绍
    verilog 之流水灯
    io 口方向调整 stm32
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5662966.html
Copyright © 2011-2022 走看看