leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0295.cpp (731B)


0 class MedianFinder {
1 priority_queue<int> left;
2 priority_queue<int, vector<int>, greater<int>> right;
4 public:
5 void addNum(int num) {
6 if (left.empty() || num < left.top())
7 left.push(num);
8 else
9 right.push(num);
11 if (left.size() < right.size()) {
12 int temp = right.top();
13 right.pop();
14 left.push(temp);
15 }
17 if (left.size() - right.size() > 1) {
18 int temp = left.top();
19 left.pop();
20 right.push(temp);
21 }
22 }
24 double findMedian() {
25 if (left.size() > right.size())
26 return left.top();
27 else
28 return (left.top() + right.top()) * 0.5;
29 }
30 };