Monotonic stack
Weirane(讨论 | 贡献)2021年10月5日 (二) 20:05的版本 (建立内容为“Category:刷题 单调栈。用于处理 Next Greater Element 这类问题。 == 相关题目 == === [https://leetcode.com/problems/next-greater-element-i/…”的新页面)
单调栈。用于处理 Next Greater Element 这类问题。
相关题目
LeetCode 496. Next Greater Element I
vector<int> nextGreaterElement(vector<int>& nums) {
vector<int> res(nums.size()); // 存放答案的数组
stack<int> s;
// 倒着往栈里放
for (int i = nums.size() - 1; i >= 0; i--) {
// 判定个子高矮
while (!s.empty() && s.top() <= nums[i]) {
// 矮个起开,反正也被挡着了。。。
s.pop();
}
// nums[i] 身后的 next great number
res[i] = s.empty() ? -1 : s.top();
//
s.push(nums[i]);
}
return res;
}