leetcode-每日温度
2020-04-26 本文已影响0人
棉花糖7
这道题双重循环的“暴力”解法,显示超时。
有两种方法,都是从后往前计算的。
法一:利用倒叙遍历,同时用一个next数组维护当前温度的索引值,用一个变量tempIndex维护大于当前温度的所有温度中,索引值最小的那个。
法二:利用栈,也是倒叙遍历。栈是维护一个大于当前温度的集合,栈顶元素是第一个大于该当前温度的索引。如果当前温度大于栈顶温度就弹栈,直到栈顶元素,是大于当前温度的。如果栈为空,说明没有元素比他大,返回0,否则返回栈顶元素与 当前温度索引的差值
![](https://img.haomeiwen.com/i11669970/f4db161bf4cd722c.png)
![](https://img.haomeiwen.com/i11669970/25ccbfabd43ac21c.png)