我无法理解下面给出的例子。 给定大小为n的整数数组,找到数组中每个窗口大小(连续子阵列的长度)的最小值。请注意,窗口大小从1到n不等。
Input: arr[] = {10, 20, 30, 50, 10, 70, 30}
Output: 70, 30, 20, 10, 10, 10, 10
输出中的第一个元素表示所有的最小值 窗户大小为1。 大小为1的窗口最小值为{10},{20},{30},{50},{10}, {70}和{30}。这些最小值的最大值为70
输出中的第二个元素表示所有的最小值 2号窗户。 大小为2的窗口最小值为{10},{20},{30},{10},{10}, 和{30}。这些最小值的最大值为30
我的问题是:为什么2号窗口的最小值为{10},{20},{30},{10},{10}和{30}? 2号窗户不应该添加1号窗户吗?
答案 0 :(得分:1)
A"窗口"是数组中连续元素的序列。大小为1的Windows只是单个数组元素。大小为2的Windows是连续的对:
{10, 20}
{20, 30}
{30, 50}
{50, 10}
{10, 70}
{70, 30}
相应的最小值为10,20,30,10,10,30。最大值为30。
当我们达到3号时......
Window min
10, 20, 30 10
20, 30, 50 20
30, 50, 10 10
50, 10, 70 10
10, 70, 30 10
max 20
看看它是如何工作的?