题解 | #数据流中的中位数#

数据流中的中位数

http://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1

import java.util.*;
public class Solution {
    private int N = 0;
    private PriorityQueue<Integer> left = new PriorityQueue<>(new Comparator<Integer>() {
        public int compare(Integer i1, Integer i2) {
            return i2 - i1;
        }
    });
    private PriorityQueue<Integer> right = new PriorityQueue<>();
    public void Insert(Integer num) {
        if((N & 1) == 0) {
            right.offer(num);
            left.offer(right.poll());
        } else {
            left.offer(num);
            right.offer(left.poll());
        }
        N++;
    }
    public Double GetMedian() {
        if((N & 1) == 0) {
            return (left.peek() + right.peek()) / 2.0;
        } else {
            return (double)left.peek();
        }
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务