每日温度
2026年5月9日大约 1 分钟
每日温度
使用的方法
暴力搜索
解题思路
- 给定一个整数数组
T,表示每天的温度,返回一个数组res,其中res[i]是指对于第i天,至少过了多少天之后,温度才会升高。如果之后都不会升高,请在该位置用0来代替。 - 我们可以使用暴力搜索的方法来解决这个问题。对于每一天,我们可以从当前天开始向后遍历,直到找到一个温度比当前天高的日子,或者遍历到数组的末尾。
- 对于每一天,我们需要比较当前天的温度与后续天的温度。如果找到了一个比当前天温度高的日子,我们就计算出两者之间的天数,并将结果存储在
res数组中。如果遍历到数组末尾仍然没有找到比当前天温度高的日子,我们就将res[i]设置为0。 - 通过这种方式,我们可以得到每一天至少过了多少天之后温度才会升高的结果,并最终返回
res数组。
代码实现
class Solution {
public int[] dailyTemperatures(int[] T) {
int[] res = new int[T.length];
for(int i = T.length - 2;i >= 0; i--){
for(int j = i+1; j < T.length; j+= res[j]){
if(T[i] < T[j]){
res[i] = j-i;
break;
} else if(res[j] == 0){
res[i] = 0;
break;
}
}
}
return res;
}
}