题目
思路
创建一个栈,遍历输入,如果栈为空则直接压入,如果栈非空且当前温度大于栈顶元素,则弹出栈顶元素,并且a[pre]=i-pre,pre为栈顶元素,如果当前温度小于栈顶元素,则直接压入栈中。
代码
cpp
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& temperatures) {
int n=temperatures.size();
vector<int>a(n);
stack<int>v;
for(int i=0;i<n;i++)
{
while(!v.empty() && temperatures[i]>temperatures[v.top()])
{
int pre=v.top();
a[pre]=i-pre;
v.pop();
}
v.push(i);
}
return a;
}
};