题解 | #数据流中的中位数#
数据流中的中位数
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; } } };
这个题目学到的最多是通过右移来找到奇数数组的中间索引值,这个方法确实是比较快的,而如果是偶数数组的话, 右移之后找到的数要和他左边的值相加然后除以二,这样才是正确的。