Find Median from Data Stream

Median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value. So the median is the mean of the two middle value.

Examples:

[2,3,4] , the median is 3

[2,3], the median is (2 + 3) / 2 = 2.5

Design a data structure that supports the following two operations:

  • void addNum(int num) - Add a integer number from the data stream to the data structure.
  • double findMedian() - Return the median of all elements so far.

For example:

add(1)
add(2)
findMedian() -> 1.5
add(3)
findMedian() -> 2
 class MedianFinder {
private:
multiset<int> left, right; public: // Adds a number into the data structure.
void addNum(int num) {
if (right.empty() || num < *right.begin()) left.insert(num);
else right.insert(num);
} // Returns the median of current data stream
double findMedian() {
int size = left.size() + right.size();
while (left.size() > size / ) {
int tmp = *left.rbegin();
right.insert(tmp);
left.erase(left.find(tmp));
}
while (left.size() < size / ) {
int tmp = *right.begin();
left.insert(tmp);
right.erase(right.find(tmp));
}
if (size & ) return *right.begin();
else return (double)(*left.rbegin() + *right.begin()) / ;
}
}; // Your MedianFinder object will be instantiated and called as such:
// MedianFinder mf;
// mf.addNum(1);
// mf.findMedian();

[LeetCode] Find Median from Data Stream的更多相关文章

  1. [LeetCode] Find Median from Data Stream 找出数据流的中位数

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  2. LeetCode——Find Median from Data Stream

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  3. [LeetCode] 295. Find Median from Data Stream ☆☆☆☆☆(数据流中获取中位数)

    295. Find Median from Data Stream&数据流中的中位数 295. Find Median from Data Stream https://leetcode.co ...

  4. 剑指offer 最小的k个数 、 leetcode 215. Kth Largest Element in an Array 、295. Find Median from Data Stream(剑指 数据流中位数)

    注意multiset的一个bug: multiset带一个参数的erase函数原型有两种.一是传递一个元素值,如上面例子代码中,这时候删除的是集合中所有值等于输入值的元素,并且返回删除的元素个数:另外 ...

  5. leetcode@ [295]Find Median from Data Stream

    https://leetcode.com/problems/find-median-from-data-stream/ Median is the middle value in an ordered ...

  6. [LeetCode] 295. Find Median from Data Stream 找出数据流的中位数

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  7. 【LeetCode】295. Find Median from Data Stream 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 大根堆+小根堆 日期 题目地址:https://le ...

  8. [leetcode]295. Find Median from Data Stream数据流的中位数

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  9. LeetCode OJ:Find Median from Data Stream(找数据流的中数)

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

随机推荐

  1. hibernate cascade=CascadeType.All

    因为时间关系,我在这里测试的环境是一对多的关系里面用到的注解方式的级联,网上也有很多贴子,我也看过了,但是呢,我还是自己总结一下吧,这觉得级联是单向的,不是双向的,意思就是说,我们在设置两个类的对象之 ...

  2. Nginx 常用伪静态配置

    1. /a/b?c=d => index.php?_a=a&_m=b&c=d 2. /xxx/detail-yyy.html => index.php?_a=xxx& ...

  3. iOS Swipe Tableviewcell(左右滑动出现按钮)

    1.背景 看到QQ的左右滑动Tableviewcell时可以出现多个菜单,觉得很高大上,因为没这种需求, 也只是需要一个删除按钮,这个系统已经帮我们实现了,只需要实现几个代理就可以,做出左划 出现删除 ...

  4. Android--入门

    之前自己在学校写过一些安卓应用,那时候没有系统地学过安卓,用到什么就网上找博客.找Demo,然后自己跟着敲一遍,有些东西也不太理解,现在打算做android开发这一块了,趁毕业之前赶紧多学些技术.先是 ...

  5. 在jsp中常用的内置对象(5个)小总结和两种页面跳转方式(服务器端调转、客户端跳转)的区别

    jsp中常用的几个内置对象: 一.request对象 主要作用:  (1)获取请求页面的信息   比如:request.getParameter("参数名");  (2)获取客户端 ...

  6. TeraData金融数据模型

    Teradata天睿公司(纽交所代码:TDC),是美国前十大上市软件公司之一.经过逾30 年的发展,Teradata天睿公司已经成为全球最大的专注于大数据分析.数据仓库和整合营销管理解决方案的供应商. ...

  7. Spec 网上选课

    角色定义 管理员 管理员负责向系统中添加学生和教师的个人信息以及课程信息,实现对教师.学生和课程信息的修改.删除.查询操作,并对管理员个人密码进行修改. 学生 学生具有查看待选课程信息和任课教师信息. ...

  8. Nim教程【四】

    这是国内第一个关于Nim的系列教程 先说废话 不得不说Rust也是门不错的语言,园子里 有人曾经说: Rust语言除了library或keyword缩写比较恶心以外其他所有地方完爆go 还有人曾这样评 ...

  9. 免费好用的web应用托管平台

    1.前言 曾经很久以前,想找一个免费的空间部署一个属于自己的技术博客真是太难了,使用过SAE,但是很快就面临收费了,后面也就不了了之了.目前自己又找到一个免费的PAAS平台,可以部署各种语言的web应 ...

  10. IE11下Forms身份认证无法保存Cookie的问题

    ASP.NET中使用Forms身份认证常见的做法如下: 1. 网站根目录下的Web.config添加authentication节点 <authentication mode="For ...