使用栈
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& temperatures) {
int n = temperatures.size();
vector<int> res(n, 0);
stack<pair<int,int>> s;
int i = 1;
s.push(make_pair(temperatures[0], 0));
while(i < n){
if(!s.empty()){
if(temperatures[i] > s.top().first){
while(!s.empty() && temperatures[i] > s.top().first){
res[s.top().second] = i - s.top().second;
s.pop();
}
s.push(make_pair(temperatures[i], i));
}else{
s.push(make_pair(temperatures[i], i));
}
}else{
s.push(make_pair(temperatures[i], i));
}
i++;
}
return res;
}
};