模板:单调队列 / 滑动窗口

deque<int> deq;
for (int i = 1; i < k; ++i) {
    while (deq.size() && a[i] >= a[deq.back()]) deq.pop_back();
    deq.push_back(i);
}
for (int i = k; i <= n; ++i) {
    while (deq.size() && deq.front() <= i - k) deq.pop_front();
    while (deq.size() && a[i] >= a[deq.back()]) deq.pop_back();
    deq.push_back(i);
    ans.push_back(deq.front());
}
posted @ 2026-10-12 21:50  zxqMATT  阅读(3)  评论(0)    收藏  举报