滑动窗口最大值

已关闭
dadingPython / C++入场费 3 金币0 次提交

题目描述

给定一个整数数组 nums 和一个整数 k,请找出所有大小为 k 的滑动窗口的最大值,按窗口滑动顺序返回结果数组。

例如:nums = [1,3,-1,-3,5,3,6,7], k = 3 窗口位置依次为:[1,3,-1], [3,-1,-3], [-1,-3,5], [-3,5,3], [5,3,6], [3,6,7] 最大值依次为:3, 3, 5, 5, 6, 7

输入格式

第一行两个整数 n 和 k,表示数组长度和窗口大小。第二行 n 个整数,表示数组元素。

输出格式

一行,n-k+1 个整数,表示每个滑动窗口的最大值,用空格分隔。

输入输出样例

样例 1

输入:

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

输出:

3 3 5 5 6 7

说明/提示

单调队列可以在 O(n) 时间内解决此问题,暴力方法 O(nk) 在大数据量下会超时。