aboutsummaryrefslogtreecommitdiff
path: root/find_median_data_stream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'find_median_data_stream.cpp')
-rw-r--r--find_median_data_stream.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/find_median_data_stream.cpp b/find_median_data_stream.cpp
new file mode 100644
index 0000000..14fbcc3
--- /dev/null
+++ b/find_median_data_stream.cpp
@@ -0,0 +1,29 @@
+#include "leetcode.h"
+
+class MedianFinder {
+public:
+ void addNum(int num) {
+ small.push(num);
+ large.push(-small.top());
+ small.pop();
+ if (small.size() < large.size()) {
+ small.push(-large.top());
+ large.pop();
+ }
+ }
+ double findMedian() {
+ if (small.size() > large.size())
+ return small.top();
+ else
+ return (small.top() - large.top()) / 2.0;
+ }
+
+private:
+ priority_queue<long> small, large;
+};
+
+int main() {
+ MedianFinder *obj = new MedianFinder();
+ obj->addNum(69);
+ double param_2 = obj->findMedian();
+}