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!
評論