博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[CareerCup][Google Interview] 寻找动态的中位数
阅读量:5899 次
发布时间:2019-06-19

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

1. There is a stream of numbers, design an effective datastructre to store the numbers and to return the median at any point of time.

 

我们可以考虑维护一个max heap和一个min heap,max heap用来记录数组的前半部分, min heap用来记录数组的后半部分,返回数组的中位数时只要返回大堆的root。

当有一个新的数字进来时,可虑是否大于min heap的root,大于的话就放到min heap,它属于数组的后半部分,如果这时min heap的大小大于max heap了,则弹出root放到max heap里。

同时,如果新来的key小于max heap的root则放入大堆,并作相应调整。

整个算法的复杂度,插入O(logn),提取O(1)

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

你可能感兴趣的文章
IBM郭继军:机器学习配合行业经验将帮助企业成就未来
查看>>
Rambus9000万美元收购Inphi存储器互联业务
查看>>
泉州电信推进渠道互联网化转型
查看>>
《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第3章3.6节识别操作系统...
查看>>
linux系统防火墙iptables命令规则及配置的示例
查看>>
10 个顶尖的 Linux 开源人工智能工具
查看>>
Firefox 跟踪保护技术将页面加载时间减少 44%
查看>>
聚合(根)、实体、值对象精炼思考总结
查看>>
Aop RealProxy 千年遇BUG
查看>>
java解析虾米音乐
查看>>
rails将类常量重构到数据库对应的表中之三
查看>>
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
查看>>
mysql 多行合并函数
查看>>
【案例】RAID卡写策略改变引发的问题
查看>>
[Django学习]如何得到一个App
查看>>
sparkStreaming+sql点击前十商品
查看>>
第四十八讲:tapestry 与 淘宝kissy editor编辑器带图片上传
查看>>
图像处理入门——扭曲
查看>>
列表,元组,字典的异同
查看>>
在MyEclipse中构建SQL查询语句
查看>>