Given a list of daily temperatures T, return a list such that, for each day in the input, tells you how many days you would have to wait until a warmer temperature. If there is no future day for which this is possible, put 0 instead.
For example, given the list of temperatures T = [73, 74, 75, 71, 69, 72, 76, 73], your output should be [1, 1, 4, 2, 1, 1, 0, 0].
Note: The length of temperatures will be in the range [1, 30000]. Each temperature will be an integer in the range [30, 100].
class Solution {
public int[] dailyTemperatures(int[] T) {
int[] res=new int[T.length];
for(int i=T.length-1;i>=0;i--){
if(i==T.length-1) res[i]=0;
else{
if(T[i]<T[i+1]){
res[i]=1;
}
else{
int temp=i+1;
int flag=0;
while(temp<=T.length-1&&T[i]>=T[temp]){
if(res[temp]==0){
flag=1;
break;
}
else{
temp=temp+res[temp];
}
}
if(flag==1){
res[i]=0;
}
else{
res[i]=temp-i;
}
}
}
}
return res;
}
}