#4625. 滑动窗口最大值问题
滑动窗口最大值问题
一、题目描述
给定一个整数数组 nums 和一个正整数 k,请你计算所有长度恰好为 k 的连续子数组(滑动窗口)中的最大值,并将这些最大值按顺序组成一个结果数组返回。
注意事项
- 如果输入数组
nums为空,或者k小于等于 0,或者k大于数组nums的长度,返回空数组。 - 子数组必须是连续的,且长度严格等于
k。 - 结果数组的长度应为
nums.size() - k + 1(当输入有效时)。
示例
-
输入:
nums = [1,3,-1,-3,5,3,6,7],k = 3 -
输出:
[3,3,5,5,6,7] -
解释:
滑动窗口的遍历过程如下:
[1,3,-1]→ 最大值 3[3,-1,-3]→ 最大值 3[-1,-3,5]→ 最大值 5[-3,5,3]→ 最大值 5[5,3,6]→ 最大值 6[3,6,7]→ 最大值 7