编程题

滑动窗口

给定一个长度为n(n<=10^6)的数组。有一个大小为k的滑动窗口从数组的最左端移动到最右端。你可以看到窗口中的k个数字。窗口每次向右滑动一个数字的距离。

下面是一个例子:

数组是 [1 3 -1 -3 5 3 6 7], k = 3。


窗口位置\t最小值\t最大值

[1 3 -1] -3 5 3 6 7 \t-1\t3

1 [3 -1 -3] 5 3 6 7 \t-3\t3

1 3 [-1 -3 5] 3 6 7 \t-3\t5

1 3 -1 [-3 5 3] 6 7 \t-3\t5

1 3 -1 -3 [5 3 6] 7 \t3\t6

1 3 -1 -3 5 [3 6 7]\t3\t7


你的任务是得到滑动窗口在每个位置时的最大值和最小值。


时间限制:20000

内存限制:65536

输入

输入包括两行。 第一行包括n和k,分别表示数组的长度和窗口的大小。 第二行包括n个数字。

输出

输出包括两行。 第一行包括窗口从左至右移动的每个位置的最小值。 第二行包括窗口从左至右移动的每个位置的最大值。


样例输入

8 3

1 3 -1 -3 5 3 6 7

样例输出

-1 -3 -3 -3 3 3

3 3 5 5 6 7

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论