单调队列

/*
维护的是前k个中最大的数和它的下标
最大数为front();
*/
class Deque{
public:
    deque<int>a;
    deque<int>id;
    int k;
    bool empty(){
        return a.empty();
    }
     void pop(int i){//弹首
         while(!id.empty()&&id.front()+k<i){//越界了就弹出
             a.pop_front();
             id.pop_front();
         }
     }
    void push(int x,int i){// x 数 i 下标
        while(!a.empty()&&a.back()<x){
            a.pop_back();id.pop_back();
        }
        a.push_back(x);
        id.push_back(i);
        pop(i);
    }
};

上一篇:Can‘t resolve ‘fs‘ in ‘F:\LaGou\03-module\04-min-module\vue-ssr\node_modules


下一篇:2020-11-28