外观
115字小于1分钟
栈
2024-12-21
单调栈,即满足单调性的栈。
在每次插入时使栈保持单调性即可。
【模板】单调栈
int n; std::vector<int> a(n+3), ans(n+3); std::stack<int> sta; for(int i = n; i > 0; --i) { for(; !sta.empty() && a[sta.top()] <= a[i]; ) // <= 可以根据需求改成不同符号 sta.pop(); if(sta.empty()) ans[i] = 0; else ans[i] = sta.top(); sta.push(i); }