滑动窗口的中位数 Sliding Window Median

时间:2021-08-31 03:52:12

给定一个包罗 n 个整数的数组,和一个巨细为 k 的滑动窗口,从左到右在数组中滑动这个窗口,找到数组中每个窗口内的中位数。(如果数组个数是偶数,则在该窗口排序数字后,返回第 N/2 个数字。)

对付数组 [1,2,7,8,5], 滑动巨细 k = 3 的窗口时,返回 [2,7,7]

最初,,窗口的数组是这样的:

[ | 1,2,7 | ,8,5] , 返回中位数 2;

接着,窗口继续向前滑动一次。

[1, | 2,7,8 | ,5], 返回中位数 7;

接着,窗口继续向前滑动一次。

[1,2, | 7,8,5 | ], 返回中位数 7;

[暴力解法]:

时间分析:

空间分析:

[思维问题]:

不理解两个heap和窗口的巨细关系:把窗口容量全扔进来,具体分到哪个格子另当别论

体会到了treemap相对付heap的优越性:想romove哪个点是随便的

[一句话思路]:

[输入量]:空: 正常情况:特大:特小:措施里措置惩罚惩罚到的特殊情况:异常情况(不同法不同理的输入):

[画图]:

[一刷]:

[二刷]:

[三刷]:

[四刷]:

[五刷]:

[五分钟肉眼debug的功效]:

[总结]:

[庞大度]:Time complexity: O() Space complexity: O()

[英文数据布局或算法,为什么不用另外数据布局或算法]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的标题问题变变变]: