#4625. 滑动窗口最大值问题

滑动窗口最大值问题

一、题目描述

给定一个整数数组 nums 和一个正整数 k,请你计算所有长度恰好为 k 的连续子数组(滑动窗口)中的最大值,并将这些最大值按顺序组成一个结果数组返回。

注意事项

  1. 如果输入数组 nums 为空,或者 k 小于等于 0,或者 k 大于数组 nums 的长度,返回空数组。
  2. 子数组必须是连续的,且长度严格等于 k
  3. 结果数组的长度应为 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