acwing 154滑动窗口

acwing 154滑动窗口,第1张

acwing 154滑动窗口

 

#include

using namespace std;

int n, k;

deque fax, fin;
vector num(1000010);

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    freopen(".in", "r", stdin);

    cin >> n >> k;

    for (int i = 1; i <= n; i++)
        cin >> num[i];
    
    for (int i = 1; i <= n; i++)
    {
        if(fax.size())
            if (fax.front() < i - k + 1)
                fax.pop_front();

        if(fax.size())    
            while (fax.size() && num[fax.back()] > num[i])
            fax.pop_back();

        fax.push_back(i);
        if (i >= k)
            cout << num[fax.front()] << ' ';

    }


    cout << endl;
    for (int i = 1; i <= n; i++)
    {
        if (fin.size())
            if (fin.front() < i - k + 1)
                fin.pop_front();

        if (fin.size())
            while (fin.size() && num[fin.back()] < num[i])
                fin.pop_back();

        fin.push_back(i);
        if (i >= k)
            cout << num[fin.front()] << ' ';
    }
    
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5718808.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存