怀旧书本
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
int a[N], k, n;
int q[N], tt = -1, hh;
int mv[N];
int main() {
    cin >> n >> k;
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
        while (tt >= hh && a[q[tt]] >= a[i]) --tt;
        if (hh <= tt && i - q[hh] + 1 > k) ++hh;
        q[++tt] = i;
        if (i >= k - 1) cout << a[q[hh]] << " " ;
    }
    cout << endl;
    tt = -1, hh = 0;
    for (int i = 0; i < n; ++i) {
        while (tt >= hh && a[q[tt]] <= a[i]) --tt;
        if (hh <= tt && i - q[hh] + 1 > k) ++hh;
        q[++tt] = i;
        if (i >= k - 1) cout << a[q[hh]] << " " ;
    }
    cout << endl;
    
    return 0;
}
本文为原创文章,欢迎分享,勿全文转载,如果内容你实在喜欢,可以加入收藏夹,说不定哪天故事又继续更新了呢。
本文地址:https://qoogle.top/sliding-window/
最后修改日期:2020年5月7日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。