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

数据流中的中位数

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

class Solution {
public:
    #define SCD static_cast<double>
    vector<int> v;
    void Insert(int num) {
        v.push_back(num);
    }

    double GetMedian() {
        sort(v.begin(),v.end());
        int sz = v.size();
        if(sz & 1){
            return SCD(v[sz >> 1]);
        }
        else{
            return SCD(v[sz >> 1] + v[(sz - 1) >> 1]) / 2;
        }
    
    }

};

这个题目学到的最多是通过右移来找到奇数数组的中间索引值,这个方法确实是比较快的,而如果是偶数数组的话, 右移之后找到的数要和他左边的值相加然后除以二,这样才是正确的。

全部评论

相关推荐

09-17 19:25
已编辑
太原理工大学 游戏测试
叁六玖:公司名发我,我要这个HR带我打瓦
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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