leetcode 739.每日温度
图解
核心思路
repeat but significant step :将遍历到的元素i与栈顶元素相比较,若大于栈顶元素则可得到题中所求天数,现出栈然后将i继续与下一个栈顶元素比较; 若小于则入栈,继续遍历下一个元素。
以下是AC代码
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& temperatures) {
int n = temperatures.size();
stack<int> s;
vector<int> res(n,0);
for(int i = 0; i < n; i++){
while(!s.empty() && temperatures[s.top()] < temperatures[i]){
res[s.top()]=i-s.top();
s.pop();
}
s.push(i);
}
return res;
}
};