题目大意:给出每日气温数组,求出每天之后等待几天,气温会升高
分析:栈——求下一个更大元素。用栈记录遍历的索引,遍历时只要当前元素大于栈顶索引所指气温值,说明栈顶元素的答案找到了,记录答案并弹栈,循环直到栈顶索引所指气温值不小于当前遍历气温,然后压入当前索引即可。
代码:
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& T) {
vector<int> ans(T.size());
stack<int> s;
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;
}
};