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

数据流中的中位数

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;
        }
    
    }

};

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

全部评论

相关推荐

CADILLAC_:我要用bava 不要用java 了 啊啊啊啊啊啊啊啊啊啊啊
点赞 评论 收藏
分享
04-17 10:16
门头沟学院 Java
小浪_coder:24届很难找了,马上25的都毕业了还有很多没找到的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务