单调栈

点击查看代码
auto Ms=[&](auto &C)->vector<int>{
    vector<int>ans(n,-1);
    stack<int>stk;
    for(int i=0;i<n;i++){
        while(!stk.empty()&&C[stk.top()]<C[i]){
            ans[stk.top()]=i;
            stk.pop();
        }
        stk.push(i);
    }
    return ans;
};
posted @ 2024-12-25 15:36  Koziki  阅读(9)  评论(0)    收藏  举报