leetcode739每日温度
思路:
- 使用单调栈,当t[i]的值大于栈顶时,说明是观测到了更高的气温,注意比较完成后t[i]也要入栈。
由于需要计算的是等待的天数,不是更高的气温,栈内保持的是t[i]中的i,不是t[i]。
代码vector
dailyTemperatures(vector & temperatures){ int len = temperatures.size();
if(len==0){
vector<int> res;
return res;
}
vector<int> res(len,0);
stack<int> s;
for(int i=0;i<len;i++){
if(s.empty())
s.push(i);
else{
if(temperatures[i]<=temperatures[s.top()]){
s.push(i);
}
else {
while(!s.empty()&&(temperatures[i]>temperatures[s.top()]))
{
res[s.top()]=i-s.top();
s.pop();
}
s.push(i);
}
}
}
return res;
}
还没有评论,来说两句吧...