LeetCode_739 每日温度
代码1:倒推法
public int[] dailyTemperatures(int[] T) {
if (T == null || T.length == 0) return null;
int[] values = new int[T.length];
for (int i = T.length - 2; i >= 0; i--) {
int j = i + 1;
while (true) {
if (T[i] < T[j]) {
values[i] = j - i;
break;
} else if (values[j] == 0) {
values[i] = 0;
break;
} else if (T[i] == T[j]) {
values[i] = values[j] + j - i;
break;
} else {
j = j + values[j];
}
}
}
return values;
}
代码2:精简版
public int[] dailyTemperatures(int[] T) {
if (T == null || T.length == 0) return null;
int[] values = new int[T.length];
for (int i = T.length - 2; i >= 0; i++) {
int j = i + 1;
while (true) {
if (T[i] < T[j]) {
values[i] = j - 1;
break;
} else if (values[j] == 0) {
values[i] = 0;
break;
}
j = j + values[j];
}
}
return values;
}