博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Find Median from Data Stream
阅读量:6412 次
发布时间:2019-06-23

本文共 1094 字,大约阅读时间需要 3 分钟。

shares a very nice solution using two heaps: a max heap for the smaller half and a min heap for the larger half. The code is rewritten below in C++, simplifying addNum using the logic in .

class MedianFinder {public:    // Adds a number into the data structure.    void addNum(int num) {        maxH.push(num);        int t = maxH.top();        maxH.pop(); minH.push(t);        int m = maxH.size(), n = minH.size();        if (n > m) {            int t = minH.top();            minH.pop(); maxH.push(t);        }    }    // Returns the median of current data stream    double findMedian() {         int m = maxH.size(), n = minH.size();        if (!m && !n) return 0.0;        if (m == n) return (maxH.top() + minH.top()) / 2.0;        return (m > n) ? maxH.top() : minH.top();    }private:    priority_queue
, less
> maxH; // stores the smaller half priority_queue
, greater
> minH; // stores the larger half};// Your MedianFinder object will be instantiated and called as such:// MedianFinder mf;// mf.addNum(1); // mf.findMedian();

 

转载于:https://www.cnblogs.com/jcliBlogger/p/4893468.html

你可能感兴趣的文章
我的友情链接
查看>>
ifconfig:command not found的解决方法
查看>>
js使用正则表达式判断手机和固话格式
查看>>
计算机是怎么存储数字的
查看>>
github精选:微信小程序开发技巧(12月31日更新)2016
查看>>
struts2 中文 url参数
查看>>
nodejs
查看>>
判断上传文件类型和文件大小
查看>>
对拉勾网招聘信息做一次数据分析(上)--40行代码拿下所有数据
查看>>
Windows10系统各版本份额出炉:十月更新占有率不高。
查看>>
如何查看局域网内所有的IP
查看>>
谈2017年高考对编程人生的思索
查看>>
关于 Dubbo Failed to save registry store file, cause: Can not lock the registry cache file
查看>>
spring事务管理
查看>>
【腾讯开源】iOS爆内存问题解决方案-OOMDetector组件
查看>>
Linux TTY、PTS、PTY详解
查看>>
java泛型中T、E、K、V、?等含义
查看>>
UITableView中使用reloadRowsAtIndexPaths会出现闪退的解决办法
查看>>
Banner无限轮播图
查看>>
Java 静态代理、Java动态代理、CGLIB动态代理
查看>>