题解 | #数据流中的中位数#
数据流中的中位数
https://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1
class Solution {
public:
#define SCD static_cast<double>
template<class T>
struct greater {
bool operator()(const T& x, const T& y) {
return x > y;
}
};
template<class T>
struct less {
bool operator()(const T& x, const T& y) {
return x < y;
}
};
priority_queue<int, vector<int>, less<int>> max;//小堆
priority_queue<int, vector<int>, greater<int>> min;//大堆
void Insert(int num) {
min.push(num);
max.push(min.top());
min.pop();
if (min.size()<max.size())
{
min.push(max.top());
max.pop();
}
}
double GetMedian()
{
if(min.size()>max.size())
return (double)min.top();
else
{
return (double)(min.top()+max.top())/2;
}
}
};

