04每日温度

每日温度

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。

示例 1:

输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]

示例 2:

输入: temperatures = [30,40,50,60]
输出: [1,1,1,0]

示例 3:

输入: temperatures = [30,60,90]
输出: [1,1,0]

提示:

  • 1 <= temperatures.length <= 105
  • 30 <= temperatures[i] <= 100

image-20260223145957253

image-20260223150024177

image-20260223150035412

public int[] dailyTemperatures(int[] temperatures) {
  int length = temperatures.length;
  int[] ans = new int[length];
  Deque<Integer> stack = new LinkedList<Integer>();
  for (int i = 0; i < length; i++) {
    int temperature = temperatures[i];
    while (!stack.isEmpty() && temperature > temperatures[stack.peek()]) {
      int prevIndex = stack.pop();
      ans[prevIndex] = i - prevIndex;
    }
    stack.push(i);
  }
  return ans;
}

04每日温度
https://jiajun.xyz/2026/02/23/算法/12栈/04每日温度/
作者
Lambda
发布于
2026年2月23日
许可协议