用一个顺序栈来进行辅助工作。
当t[i]>stk.top()时,弹出。
每个i都要进栈。
class Solution {
public:
stack<int> stk;
vector<int> dailyTemperatures(vector<int>& temperatures) {
stk.push(0);
vector<int> res(temperatures.size());
for (int i=1;i<temperatures.size();i++){
if (!stk.empty()){
while (!stk.empty() && temperatures[i]>temperatures[stk.top()]){
int t=stk.top();
stk.pop();
res[t]=i-t;
}
}
stk.push(i);
}
return res;
}
};