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

本文共 1039 字,大约阅读时间需要 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();

 

转载地址:http://cqdox.baihongyu.com/

你可能感兴趣的文章
Asterisk 安装与配置
查看>>
利用日志记录所有LINQ的增,删,改解决方案
查看>>
实例讲解PostSharp(一)
查看>>
graylog 客户端的安装配置
查看>>
CentOS6.4_X86_64 安装Drupal-7.31必须成功版!
查看>>
驱动学习之驱动和应用的接口
查看>>
hbase region split源码分析
查看>>
MySQL备份之分库分表备份脚本
查看>>
Java 与 Netty 实现高性能高并发
查看>>
SurfControl人工智能新突破 领跑反垃圾邮件
查看>>
一个动态ACL的案例
查看>>
linux基础中的基础
查看>>
jquery 表单验证
查看>>
openstack 之 windows server 2008镜像制作
查看>>
VI快捷键攻略
查看>>
Win server 2012 R2 文件服务器--(三)配额限制
查看>>
卓越质量管理成就创新高地 中关村软件园再出发
查看>>
linux rsync 远程同步
查看>>
httpd的manual列目录漏洞
查看>>
myeclipse2014破解过程
查看>>