单调栈 模版 C++ 1 2 3 4 5 6 7 8 9 10// 求 i 后面一个比 a[i] 大的数的下标 stack<int> st; vector<int> ans(n + 1); for (int i = 1 ; i <= n ; i++) { while (!st.empty() && a[st.top()] < a[i]) { ans[st.top()] = i; st.pop(); } st.emplace(i); } 例题 洛谷P5788 P5788 【模板】单调栈 - 洛谷