LeetCode 739. 每日温度
思路:单调栈
从前往后,维护一个单调下降的栈。当入栈元素大于栈顶元素时,说明栈顶元素已经找到下一个大于它的数了。
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& T) {
vector<int> ans;
int n=T.size();
if(n==0) return ans;
for(int i=0;i<n;i++) ans.push_back(0);
stack<int> sta;
for(int i=0;i<n;i++)
{
if(sta.empty()||T[sta.top()]>=T[i])
{
sta.push(i);
}
else
{
while(sta.empty()==0&&T[sta.top()]<T[i])
{
int tmp=sta.top();
ans[tmp] = i-tmp;
sta.pop();
}
sta.push(i);
}
}
return ans;
}
};
还没有评论,来说两句吧...