leetcode 739. 每日温度 medium
题目描述:
解题思路:
单调栈, 求右边最近比它大的。
所以从右向左遍历,并且栈顶的元素得是大于当前元素,才能入栈,否则栈顶出栈。
代码:
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& temperatures) {
if (temperatures.empty())
return {};
vector<int> res(temperatures.size(), 0);
stack<int> stk;
for (int i = temperatures.size() -1; i >= 0; i--)
{
while(stk.size() && temperatures[stk.top()] <= temperatures[i])
stk.pop();
res[i] = stk.empty()?0:(stk.top() - i);
stk.push(i);
}
return res;
}
};