diff options
Diffstat (limited to 'find_median_data_stream.cpp')
-rw-r--r-- | find_median_data_stream.cpp | 29 |
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(); +} |