295. 数据流的中位数
1 class MedianFinder 2 { 3 priority_queue<int,vector<int>,greater<int>> up;//小根堆 4 priority_queue<int> down;//大根堆 5 public: 6 MedianFinder() {} 7 8 void addNum(int num) //维护小根堆与大根堆相等或者比大根堆多1 9 { 10 if(down.empty() || num >= down.top()) up.push(num); 11 else 12 { 13 down.push(num); 14 up.push(down.top()); 15 down.pop(); 16 } 17 18 if(up.size() > down.size() + 1) 19 { 20 down.push(up.top()); 21 up.pop(); 22 } 23 } 24 25 double findMedian() 26 { 27 if(down.size() + up.size() & 1) return up.top(); 28 else return (down.top() + up.top()) / 2.0; 29 } 30 };
Mamba never out

浙公网安备 33010602011771号