问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

[LeetCode] Median 系列

发布网友 发布时间:2023-05-18 07:08

我来回答

1个回答

热心网友 时间:2023-09-26 13:01

输入一个数据流, 求这个数据流的中位数median。中位数的意思就是对数据进行排序,如果总数是奇数个,那么就是最中间的数,如果是偶数个,那么就是中间两个数的平均值。

addNum(1)
addNum(2)
findMedian() -> 1.5
addNum(3)
findMedian() -> 2

Simple Sorting

Insertion Sort

[Best] Two Heaps
前两种方法都保证了整体序列有序,但其实我们只想要Median,不一定要整体有序。

Multiset and Two Pointers
方法4本质上和3是一样的。只不过是用了Self-balancing Binary Search Trees(比如AVL Tree)去实现。
实现起来有点复杂,在这里就不展开了。个人觉得方法3简单容易理解。

Others
Buckets如果stream里面的数是 statistically distributed,那么很容易通过bucket去获得中位数。一旦知道了正确的bucket,sort这个bucket就能知道中位数。如果bucket大小 << stream的大小,就大大节省了时间。
Reservoir Sampling(蓄水池).Following along the lines of using buckets: if the stream is statistically distributed, you can rely on Reservoir Sampling. Basically, if you could maintain just one good bucket (or reservoir ) which could hold a representative sample of the entire stream, you could estimate the median of the entire stream from just this one bucket. This means good time and memory performance. Reservoir Sampling lets you do just that. Determining a "good"size for your reservoir? Now, that's a whole other challenge. A good explanation for this can be found in this StackOverflow answer.
Segment Trees如果想对有限范围内的数据进行大量的读取或者大量的插入操作,Segment Tree是个很好的数据结构。They allow us to do all such operations fast and in roughly the same amount of time , always.缺点是不容易实现(写起来麻烦)。参考 introctory article on Segment Trees 。
Order Statistic Treesare data structures which seem to be tailor-made for this problem. They have all the nice features of a BST, but also let you find the kth order element stored in the tree. 缺点是不容易实现(写起来麻烦),面试时几乎不会考到。但如果这个结构已经提供,用起来会很有趣。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
猛禽点烟器在什么位置? 哪家公司的Burkert角座阀性价比更高? 腊肠炒青豆做法 香肠炒青豆的家常做法大全怎么做好吃 我想模仿一个淘宝大店铺'主要是因为他们销量很好,。我想生产他们的... 模仿别人淘宝店铺算侵权吗?侵权赔偿标准介绍 applexsmax突然黑屏 大雁气功当代传人 贷款担保合同签字担保人没有来是不是有效 当一个习惯养成的时候,是不是戒不掉了 剑指offer - 数据流中的中位数 哪里可以看亚洲欧美一区二区三区的 什么是国际足联友谊赛比赛日 青格达湖景区门票多少钱附优惠政策 两直角三角形,两条直角边上的中线对应相等,求证两直角三角形全等。几何法证明 数学题,求解,(要过程) 五家渠的风景名胜 物流企业与生产企业一样追求规模效益是否正确说明原因 形容藏獒的霸气句子 什么叫“獒”!! 胎儿双肾集合系统分离严重吗? 三十周两条天双顶径BPD:80mm,腹围AC:258mm,股骨长FL:54mm小孩是多大 股 手机升级后vivo客户端变成安卓客户端怎么变回去啊求大神指点 怎么把新浪微博每条动态上面的Android客户端 改成自己的手机品牌 我用的是vivo手机 之前发 怎么让微博里显示的Adroid客户端改变为vivo智能手机客户端啊?以前是vivo,不知道后来怎么 续短的诗句续短的诗句是什么 寄语2023简短唯美 十九人中最少年的翻译是什么 褴毵的解释褴毵的解释是什么 孕妇分娩开几指能生,孕妇半夜要分娩怎么办 修身短款与正常码的区别 国家政务分工什么意思? 解放初期,中央政府和政务院怎么分工? 国行iphone14在欧洲能用吗 i have got a ticket for the concert.for是什么意思?修饰什么 狗狗来人世是来渡劫的吗? 冲床几吨是什么意思 购物小票用法语怎么说 冲床上的25吨是什么意思 什么是5173交易? python判断奇偶数代码 如何看冲床知道吨位呢? 400吨冲床,400吨是什么意思? 关于5173交易 QQ华夏5173交易是怎么回事,具体是怎样交易的,说清楚了就给分 人生有朋无憾事的意思? 海州区教育局电话 破折号的作用是表示声音什么的延长? 2013年江苏省连云港市海州区教育局办公室选聘有什么要求? 什么是感情冷暴力?冷暴力有什么危害吗?