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

数据流中的中位数

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

public:
    //使用两个堆来存储数据,
    priority_queue<int> maxheap;   //大根堆,默认降序排列,队列头的元素最大
    priority_queue<int, vector<int>, greater<int>> minheap; //队头元素最小
    void Insert(int num) {
        maxheap.push(num);
        if(minheap.size() && maxheap.top() > minheap.top()){
            int a = maxheap.top(); maxheap.pop();
            int b = minheap.top(); minheap.pop();
            maxheap.push(b), minheap.push(a);
        }
        if(maxheap.size()> minheap.size() + 1){
            minheap.push(maxheap.top());
            maxheap.pop();
        }
    }

    double GetMedian() { 
        if((maxheap.si***heap.size()) & 1) return maxheap.top();
        return (maxheap.top() + minheap.top()) / 2.0;
    }    

};
全部评论

相关推荐

11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
头像
今天 09:40
已编辑
山东大学 嵌入式软件工程师
前两天参加移动的座谈会,HR讲到薪资的时候,提了一嘴:我们这个总包指的是大家以后的年薪现金总包,也就是月薪+年终奖+现金补贴的税前总包,不是公司的用人成本总包,他们电信联通就爱干这事。这时候我就想举两个例子,都是我之前爆料过薪资的:九院九部研发设计类薪资:https://www.nowcoder.com/share/jump/1734051230923中国船舶707所薪资待遇:https://www.nowcoder.com/share/jump/1734051244015这时候就出现了问题:总包到底是啥?总包到底咋算的?央国企的薪资普遍不算高,这一点大家应该都能达成共识。然而,具体的薪资水平...
小型域名服务器:个人理解,通常意义下:总包 = 税前(月薪+年终奖+现金补贴)= 实际到手薪资+扣的税+个人缴纳的五险一金。就像如果互联网企业开的薪资是30 X 15,那么总包就是45,其中月薪3w,年终奖3个月工资9万。所以移动HR说的这个总包是真的总包,只不过因为移动的各种补贴是随着月工资发放的,所以相当于每个月的月薪都不尽相同。部分单位经常用来宣传的,用人成本包 = 税前(月薪+年终奖+现金补贴)+ 单位缴纳的五险一金 + 各种非现金福利。有很多公司会这么宣传的,甚至我之前拿到offer的大多数公司都这么宣传,但是有的HR问他总包构成的话,他会说里面是含有一部分福利的,也有的就一直打马虎眼。总之,因为各种非现金福利、扣税和缴纳五险一金的缘故,导致公司实际支出的成本和我们拿到手的现金之间有不小的差距,不要被骗了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务