295.Find Median from Data Stream

https://leetcode.com/problems/find-median-from-data-stream/discuss/74062/Short-simple-JavaC++Python-O\(log-n\)-+-O\(1\)

1

class MedianFinder {
    Queue<Integer> small = new PriorityQueue<>((a, b)->(b - a));
    Queue<Integer> large = new PriorityQueue<>();
    /** initialize your data structure here. */
    public MedianFinder() {

    }

    public void addNum(int num) {
        large.add(num);
        small.add(large.poll());
        if(large.size() < small.size())
            large.add(small.poll());
    }

    public double findMedian() {
        if(large.size() > small.size())
            return large.peek();
        else    
            return (large.peek() + small.peek()) / 2.0;
    }
}

/**
 * Your MedianFinder object will be instantiated and called as such:
 * MedianFinder obj = new MedianFinder();
 * obj.addNum(num);
 * double param_2 = obj.findMedian();
 */

results matching ""

    No results matching ""