739. Daily Temperatures
題目網址: https://leetcode.cn/problems/daily-temperatures/
題意: 給一整數 array
temperatures
代表每天的溫度。請返回 arrayres
, 其中res[i]
是指對於第i
天, 下一個更高溫度是出現在幾天後。如果氣溫在這之後都不會升高, 則該位置用0
來代替。
Solution:
想法:利用 Stack, 使用 Monotonic(遞減) Stack
stk
紀錄{temperature, idx}
, 一旦當前溫度temperatures[i]
比stk.top().first
還高, 則不斷將stk.top()
取出, 並計算res[idx]
, 直到stk.top().first > temperatures[i]
才把temperatures[i]
push 到stk
中
class Solution { |
- time:$O(n)$ ➔ for loop
- space:$O(n)$ ➔
stk
中的元素個數不超過n
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論