标签:media esc 偶数 方法 push 优先队列 排序 describe amp
1 class Solution { 2 priority_queue<int, vector<int>, less<int> > p; //最大堆 3 priority_queue<int, vector<int>, greater<int> > q; //最小堆 4 public: 5 void Insert(int num) 6 { 7 //偶数个,应该压入最小堆 8 if (((p.size() + q.size()) & 1) == 0) { 9 if (p.size() > 0 && num < p.top()) { 10 int temp = p.top(); 11 p.pop(); 12 p.push(num); 13 q.push(temp); 14 } else { 15 q.push(num); 16 } 17 } else { //奇数个,应该压入最大堆,但是数可能比最小堆的最小值大 18 if (q.size() > 0 && num > q.top()) { 19 int temp = q.top(); 20 q.pop(); 21 q.push(num); 22 p.push(temp); 23 } else { 24 p.push(num); 25 } 26 } 27 } 28 29 double GetMedian() 30 { 31 if (p.size() == q.size()) { 32 return (p.top() + q.top()) / 2.0; 33 } else { 34 return q.top(); 35 } 36 37 } 38 39 };
标签:media esc 偶数 方法 push 优先队列 排序 describe amp
原文地址:https://www.cnblogs.com/qinduanyinghua/p/11403207.html