递减栈,因为题目要求是如果当前i找到了比它大的天气,就可以出栈,如果没有找到,就还要待在栈里,因此栈里后面进来的都是比它小的数,所以栈里没有找到答案的数都是呈递减分布的。
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& T) {
stack<int>s;
vector<int>ans(T.size(),0);
for(int i = 0;i<T.size();i++)
{
while(!s.empty() && T[s.top()] < T[i])
{
ans[s.top()] = i-s.top();
s.pop();
}
s.push(i);
}
return ans;
}
};