给定一个包罗 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给出的标题问题变变变]: