[编程题]数据流中的中位数

数据流中的中位数

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

import java.util.PriorityQueue;
import java.util.Comparator;
public class Solution {
        //小顶堆,从小到大排列
        private PriorityQueue<Integer> min=new PriorityQueue<Integer>();
        //大顶堆,从大到小的排列
        private PriorityQueue<Integer> max=new PriorityQueue<Integer>(15,new Comparator<Integer>(){
            @Override
            public int compare(Integer o1,Integer o2){
                return o2-o1;
            }
        });
        //如果当前的数据个数为0
        int count=0;
    public void Insert(Integer num) {
        if(count%2==0){
            max.offer(num);
            Integer curNum=max.poll();
            min.offer(curNum);
        }else{
            //如果为奇数
            min.offer(num);
            Integer curNum=min.poll();
            max.offer(curNum);
        }
        //插入一个数据后加1
        count++;
    }

    public Double GetMedian() {
        //如果输入流的数据个数为奇数
        if(count%2==0){
            return new Double(min.peek()+max.peek())/2;
        }else{
            return new Double(min.peek());
        }
    }


}
全部评论

相关推荐

珩珺:那些经历都太大太空了,实习的情况不了解,大创项目连名字、背景、目的及意义都没体现出来;地摊经济更是看完连卖的什么产品都不知道,项目成果直接写营收多少都更直观真实一点;后面那个校文体部的更是工作内容是组织活动整理流程,成果变成了当志愿者,而且你们学校本科学生会大一入学就直接当部长吗,志愿里面还提到了疫情防控,全面解封是22年12月的事情,可能时间上也有冲突。可能你花了钱人家就用AI给你随便写了点内容改了一下,没什么体现个性化的点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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