CodeACM
HOT 100 · 子串 · LC 239

滑动窗口最大值:ACM 模式刷题

按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。

题目描述

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

返回 滑动窗口中的最大值 。

输入格式

第一行包含两个整数 n 和 k。

第二行包含 n 个整数 nums[i]。

输出格式

输出 n − k + 1 个整数,依次表示每个滑动窗口的最大值,相邻数字以空格分隔。

数据范围

  • 1 ≤ k ≤ n ≤ 10⁵
  • −10⁴ ≤ nums[i] ≤ 10⁴

公开样例

样例 1

输入

8 3
1 3 -1 -3 5 3 6 7

输出

3 3 5 5 6 7

窗口每次向右移动一位,每个窗口的最大值如下:

样例 2

输入

1 1
1

输出

1

唯一窗口只包含元素 1。

练习建议

先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。