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