今天让我们来讲一讲洛谷的P1886这一题吧,老规矩,先看题目。
题目描述
有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。
例如:
The array is [1,3,−1,−3,5,3,6,7][1,3,−1,−3,5,3,6,7], and k=3k=3。
输入格式
输入一共有两行,第一行有两个正整数 n,k。 第二行 n 个整数,表示序列 a
输出格式
输出共两行,第一行为每次窗口滑动的最小值
第二行为每次窗口滑动的最大值输入输出样例
输入 #1
8 3 1 3 -1 -3 5 3 6 7输出 #1
-1 -3 -3 -3 3 3 3 3 5 5 6 7
分析
这一题有一点难,我用的是队列去做的,把这道题简单化了。
方法一:
#include <bits/stdc++.h>
using namespace std;
int n,k,a[1000000],s;
queue<int>minn,maxx;
int main(){
cin>>n>&