Problem: 739. 每日温度
思路:单调栈模板题
Accode:
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& temperatures) {
stack<int> sta;
vector<int> ans(temperatures.size());
for(int i=0;i<temperatures.size();i++){
if(sta.size()==0){
sta.push(i);
}
else if(temperatures[sta.top()]>=temperatures[i]){
sta.push(i);
}
else {
while(sta.size()>0 && temperatures[sta.top()]<temperatures[i]){
ans[sta.top()]=i-sta.top();
sta.pop();
}
sta.push(i);
}
}
return ans;
}
};
时间复杂度:$o(n)$每个元素最多进出栈各一次