LeetCode 239:滑动窗口最大值
题目要求 给你一个整数数组 nums 和一个整数 k。一个恰好包含 k 个连续元素的窗口从 nums 最左端开始,每次向右移动一位。请按窗口从左到右的顺序,返回每个窗口中 的最大值。 窗口中的元素必须连续,其原有顺序和位置不会改变,相邻窗口可以重叠。数组中的值 可以重复,也可以是负数。 LeetCode 接口约定 LeetCode 会调用 maxSlidingWindow(nums, k)。该方法接收整数数组和一个合法的窗口 大小,返回一个整数数组,其中依次包含每个完整窗口的最大值。输入保证满足下面的 约束。 示例 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,6,7] 示例 2: 输入:nums = [1], k = 1 输出:[1] 约束 1 <= nums.length <= 10^5 -10^4 <= nums[i] <= 10^4 1 <= k <= nums.length 第 1 步:窗口什么时候才完整? 在示例 1 中,当窗口右端到达索引 2 时,窗口由哪些索引组成?右端继续到达索引 3 时,又会发生什么变化? 目前我们只知道一个大小为 k 的窗口会向右移动。要枚举所有输出时,这个描述还 不够:它既没有准确说明窗口的左端,也没有说明第一个完整窗口会在哪个位置出现。 使用从零开始的索引,把当前结束位置记为 right。如果窗口从 left 开始,并且 恰好包含 k 个元素,那么: ...