要求:每个元素后面第一个比他大的,距离
思路:单调栈,遇到栈里小的先弹出来
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& temperatures) {
stack<int> s;
int n=temperatures.size();
vector<int> v(n);
for(int i=0;i<n;++i){
while(!s.empty()&&temperatures[s.top()]<temperatures[i]){
v[s.top()]=i-s.top();
s.pop();
}
s.push(i);
}
return v;
}
};