每日温度
每日温度
给定一个整数数组 temperatures
,表示每天的温度,返回一个数组 answer
,其中 answer[i]
是指对于第 i
天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0
来代替。
示例 1:
1 | 输入: temperatures = [73,74,75,71,69,72,76,73] |
示例 2:
1 | 输入: temperatures = [30,40,50,60] |
示例 3:
1 | 输入: temperatures = [30,60,90] |
提示:
1 <= temperatures.length <= 105
30 <= temperatures[i] <= 100
单调栈用来快速求出某个元素左边比它小(大)的最近元素,和右边比它小(大)的最近元素。
对于大压小的栈:
- 如果当前元素比栈顶大,直接入栈
- 如果当前元素比栈顶小,将栈顶元素弹出,当前元素为栈顶元素的右边更小的最近元素,新栈顶元素为原栈顶元素左边最近更小的元素
反之,大于小压大的栈求的是更大的元素。
每次弹出元素的时候和当前元素和新栈顶元素进行比较,跟据题目要求来决定是用哪种栈。
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 面试资料!