739.每日温度
暴力解法会超过时间限制。
维护一个单调栈,栈中存放的是温度数组各元素的下标而不是温度值,但单调性根据温度值来维护。
核心代码:
1 | for i in range(l-1,-1,-1): |
比如输入是30,60,90。单调栈存的就是 [3 2 1] 栈顶对应的温度值为30。为了保证先入后出,从后往前遍历。存下标的话,因为我们有原数组,相当于可以映射过去也就有了实际的温度值,如果存实际的温度值就会丢失下标的信息量,并且答案实际也是要从下标推出来的,所以实际上是从单调栈线性推出答案,这就是单调栈的优越性。