295. 数据流的中位数
class MedianFinder {
public:
priority_queue<int, vector<int>, less<int> > down;
priority_queue<int, vector<int>, greater<int> > up;
MedianFinder() {
}
void addNum(int num) {
if(down.empty() || num <= down.top()) down.push(num);
else up.push(num);
if(down.size() > up.size() + 1) up.push(down.top()), down.pop();
if(up.size() > down.size()) down.push(up.top()), up.pop();
}
double findMedian() {
if(up.size() == down.size()) return (up.top() + down.top()) / 2.0;
else return down.top();
}
};