关于栈:栈-高温天数leetcode739

5次阅读

共计 718 个字符,预计需要花费 2 分钟才能阅读完成。

题目形容

请依据每日 气温 列表,从新生成一个列表。对应地位的输入为:要想观测到更高的气温,至多须要期待的天数。如果气温在这之后都不会升高,请在该地位用 0 来代替。

例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输入应该是 [1, 1, 4, 2, 1, 1, 0, 0]。

提醒:气温 列表长度的范畴是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范畴内的整数。

解题思路

思路一:

暴力破解,应用双循环,找到下一个大于以后值的序号;

思路二:

1、反向开始算,最初一个必定是 0;
2、而后开始排,用新数组记录对应的每个数值的下一个大于他的值的间隔
3、和下一个数值比照,联合下一个素值对应的新数组记录的下一个大于该值的地位,疾速找到下一个比照的数值的地位

### 语言积攒和技巧
1、不必管最初一个数值的后果,应为 new 的时候,曾经给他赋值 0 了
2、在进行循环比照的时候,改良下逻辑关系,判断条件外面能够少一个比拟的操作,这样整题的运算工夫会有 4ms 降到 3ms。具体看连贯 2 和连贯 3 的区别

### vscode 代码连贯
https://github.com/lunaDolphin/leetcode/tree/master/stack_dailyTemperatures_739
https://github.com/lunaDolphin/leetcode/tree/master/stack_dailyTemperatures_739_1
https://github.com/lunaDolphin/leetcode/tree/master/stack_dailyTemperatures_739_2

正文完
 0