Menu
CoddyTech

Daily Temperatures

中等单调栈python iconjava iconcpp iconc iconjs icon+10

temperatures[i] 是第 i 天的温度。对于每一天,计算从这一天起要等多少天才会出现温度更高的一天。如果之后没有温度更高的日子,则计为 0。返回一个长度相同的数组,其中第 i 项表示第 i 天需要等待的天数。

函数

dailyTemperatures(temperatures: integer-array) → integer-array
temperaturesinteger-array
按顺序排列的每天的温度
返回值integer-array
对于每一天,距离更暖和的一天还有多少天;如果没有,则为 0

约束条件

  • 1 ≤ temperatures.length ≤ 104
  • 30 ≤ temperatures[i] ≤ 100
  • 更暖意味着温度严格更高:温度相同的后一天不算。

示例

输入
temperatures = [71, 69, 72, 70, 70, 75, 68]
输出
[2, 1, 3, 2, 1, 0, 0]
解释
第 0 天(71)等待 2 天,等到 72。第 3 天(70)跳过第 4 天相等的 70,等待 2 天,等到 75。75 或 68 之后都没有更高的温度,所以它们的结果都是 0。
challenge icon

进阶

温度只有 71 个可能值,从 30 到 100。如何通过一个以温度为索引的表,从右向左一次遍历就回答每一天的问题?代价是什么?

重置代码
def dailyTemperatures(temperatures):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

temperatures = [71, 69, 72, 70, 70, 75, 68]

预期输出

[2, 1, 3, 2, 1, 0, 0]