解题思路:
(1)记录后面第一个比当前数大的元素的位置
(2)利用hash数组
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& T) {
int i=0,len=T.size();
int *hash=new int[101]();
vector<int> v;
while(i<len) {
int temp=i;
if(T[i]==100) {
v.push_back(0);
} else {
if(hash[T[i]]>i) {
i=hash[T[i]];
} else {
i=i+1;
}
while(i<len && T[i]<=T[temp]) {
i++;
}
if(i>=len) v.push_back(0);
else v.push_back(i-temp);
hash[T[temp]]=i;
}
i=temp+1;
}
return v;
}
};