这道题的核心是滑动窗口,需要找到每个窗口的最大值。我们可以使用 单调队列(双端队列) 来优化求解。
给你一个整数数组nums,有一个大小为 k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。
输出 滑动窗口中的最大值 。
输入共两行。
第一行为两个个整数,n,k。
第二行为n个整数nums0,nums1,...,numsn−1,数字之间以空格分隔。
如题,输出一行,数字之间以空格分隔。
输入
8 3
1 3 -1 -3 5 3 6 7
输出
3 3 5 5 6 7
| 滑动窗口位置 | 最大值 |
|---|---|
| [1 3 -1] -3 5 3 6 7 | 3 |
| 1 [3 -1 -3] 5 3 6 7 | |
| 1 3 [-1 -3 5] 3 6 7 | 5 |
| 1, 3 -1 [-3 5 3] 6 7 | |
| 1 3 -1 -3 [5 3 6] 7 | 6 |
| 1 3 -1 -3 5 [3 6 7] | 7 |
输入
1 1
1
输出
1