首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    LeetCode 295. Find Median from Data Stream(multiset,heap)

    题解:要确保输入数字的操作和输出中位数的操作,都是低于等于Log(n)的效率。 那么怎么做呢?我们维护两个multiset ,内部是一棵红黑树。一个树A 维护的是较大值,树B维护的是较小值。A,B平分秋色。 中位数显然就是A里的最小值和B里的最大值中选择。那么在存数字的时候判断这个数字应该放到哪个树里,然后再需要判断A,B的元素数量差,如果出现差值大于1,就要把较多的那个树的某个极值元素放到较小的那个树里,始终保持两个树的元素数量差不超过1,所以存入数字的效率是O(logn*3) 而取中位数是O(1)的效率 不知道为什么multiset的size()函数,会超时,难道是O(n)的效率取size吗?介绍里明明是constant的时间复杂度啊。 用优先队列也可以的。效率是一样的。

    02
    领券