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

数据流中的中位数

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

解法一:插入排序

public:
    //插入排序
    vector<int>ans;
    void Insert(int num) {
        if(ans.empty()){//如果为空,直接插入
            ans.push_back(num);
        }
        else{
            vector<int>::iterator it=lower_bound(ans.begin(),ans.end(),num);//找到大于等于这个数的第一个位置
            ans.insert(it,num);//然后再这个数前面插入
        }
    }

    double GetMedian() { 
        int size=ans.size();
        if(size&1){//奇数个数
            return ans[size/2];
        }else{//偶数个数
            return (ans[size/2-1]+ans[size/2])/2.0;
        }
    }

};
全部评论

相关推荐

最喜欢秋天的火龙果很...:第一份工作一定要往大的去,工资低点没事。后面换工作会更好找,即使你去小公司,你也不可能不会换工作的。所以找大的去
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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