295. Find Median from Data Stream

Posted 我的名字叫周周

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了295. Find Median from Data Stream相关的知识,希望对你有一定的参考价值。

    /*
     * 295. Find Median from Data Stream 
     * 12.18 by Mingyang MinHeap is the minimal on the
     * 刚开始我把题意理解错误,以为是所有数的一半
     * 这里用两个heap,max heap最大的在上面,装最小的那一半,min反之
     * 最开始全部放max,然后max排序以后把最大的给min
     * 然后如果是平衡的(两个相等个数,那么就ok,如果不相等,就把max再放入一个)
     * 宗旨就是保持两个的大小相等,如不,就在max里面多放一个(多放在min一样的)
     */
    class MedianFinder {
        // max queue is always larger or equal to min queue
   PriorityQueue<Integer> min = new PriorityQueue();
   PriorityQueue<Integer> max = new PriorityQueue(1000, Collections.reverseOrder());
        // Adds a number into the data structure.
        public void addNum(int num) {
            max.offer(num);
            min.offer(max.poll());
            if (max.size() < min.size()){
                max.offer(min.poll());
            }
        }
        // Returns the median of current data stream
        public double findMedian() {
            if (max.size() == min.size()) return (max.peek() + min.peek()) /  2.0;
            else return max.peek();
        }
    };

 

以上是关于295. Find Median from Data Stream的主要内容,如果未能解决你的问题,请参考以下文章

295. Find Median from Data Stream

295. Find Median from Data Stream

295. Find Median from Data Stream

leetcode295 Find Median from Data Stream

295. Find Median from Data Stream

[leetcode]295. Find Median from Data Stream?????????????????????