739.每日温度 python3

题目:

题目

解析:

  • 题目等价于求右边比自己的第一个数,与自己的距离。
  • 采用单调栈,单调栈就是可以求左边或者右边,最大或者最小的第一个数。

代码:

class Solution:
    def dailyTemperatures(self, T: List[int]) -> List[int]:
        result = [0] * len(T)
        
        # 单调栈
        sta = []
        for i in range(len(T)-1, -1, -1):
            while sta and T[i] >= T[sta[-1]]:
                sta.pop()
            if sta:
                result[i] = sta[-1] - i
            sta.append(i)
        return result

你可能感兴趣的:(leetcode,题目)