单调栈
点击查看代码
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;
};

浙公网安备 33010602011771号