题目链接
题目描述
给定一个整数数组 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]
解题思路
- 问题描述:
- 给定一个每日温度数组
T
,要求返回一个数组ans
,其中ans[i]
表示在第i
天后需要等待多少天才能遇到更高的温度。如果未来没有更高的温度,则ans[i] = 0
。
- 给定一个每日温度数组
- 解题方法:
- 单调栈法:
- 使用栈来存储尚未找到更高温度的索引。
- 遍历数组时,比较当前温度与栈顶索引对应的温度:
- 如果当前温度更高,则弹出栈顶索引,并计算等待天数。
- 否则,将当前索引压入栈。
- 关键点:
- 栈中索引对应的温度是单调递减
- 单调栈法: