iT邦幫忙

2025 iThome 鐵人賽

DAY 0
0
自我挑戰組

Leetcode自學系列 第 13

Day 13 最小堆疊

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20251001/20178921oY128k1Z50.png
一開始看到題目時我覺得不難,但思考了一下發現,如果只用一個普通的棧,要取得最小值就得遍歷整個棧,這樣時間複雜度是 O(n),不符合題目要求的 O(1)。
使用一個主棧儲存所有資料而另一個輔助棧(minStack)專門用來記錄目前的最小值。
當有新元素進來時,如果它比現在的最小值還小,就同時壓入 minStack。
pop 的時候也要同步檢查,如果剛好把最小值移除了,就要從 minStack 裡也移除它。
這樣每次只要看 minStack 的頂端,就能馬上知道目前棧內的最小值。


上一篇
Day 12 環形鏈結串列
系列文
Leetcode自學13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言