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

数据流中的中位数

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

};

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

全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
秋招吐槽大会
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
12-17 17:40
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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