單調棧_ 739_每日溫度

文章目錄

題目描述

在這裏插入圖片描述

思路

  • 單調棧 - 棧中存放數組元素的下標
class Solution:
    def dailyTemperatures(self, T: List[int]) -> List[int]:
        stack = []
        res = [0] * len(T)
        for i in range(len(T)):
            if not stack or T[i] <= T[stack[-1]]:  # 棧空 或 T[i]小於棧頂元素
                stack.append(i)
            else:
                while stack and T[i]>T[stack[-1]]:
                    top = stack.pop()
                    res[top] = i-top
                stack.append(i)
        return res
  • 複雜度分析

  • 時間複雜度:O(n)O(n),其中 n是溫度列表的長度。正向遍歷溫度列表一遍,對於溫度列表中的每個下標,最多有一次進棧和出棧的操作。

  • 空間複雜度:O(n)O(n),其中 n是溫度列表的長度。需要維護一個單調棧存儲溫度列表中的下標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章