题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。
思路:首先插入num,然后进行排序,然后判断size是奇数还是偶数
class Solution {
public:
vector<int>res;
void Insert(int num)
{
res.push_back(num);
}
double GetMedian()
{
int size = res.size();
sort(res.begin(), res.end());
if (size % 2 == 0)
return (double)(res[size/2] + res[size/2 - 1])/2;
else
return (double)res[size / 2];
}
};