Sliding Window Maximum - YessineJallouli/Competitive-Programming GitHub Wiki

vector<int> maxSlidingWindow(vector<int>& a, int k) {
    deque<int> d;
    vector<int> ans;
    int n = (int) a.size();
    for (int i = 0; i < n; i++) {
        if (!d.empty() && d.front() == i - k)
            d.pop_front();
        while (!d.empty() && a[d.back()] < a[i])
            d.pop_back();
        d.push_back(i);
        if (i >= k - 1)
            ans.push_back(a[d.front()]);
    }
    return ans;
}

Problems:
https://codeforces.com/contest/372/problem/C
https://codeforces.com/gym/105190/problem/J

⚠️ **GitHub.com Fallback** ⚠️