Stack
LeetCode 503: Next Greater Element II(單調棧)
·1 分鐘
LeetCode
Daily
Medium
Array
Stack
Monotonic-Stack
Circular-Array
單調棧、環狀陣列
LeetCode 496: Next Greater Element I
·1 分鐘
LeetCode
Daily
Easy
Array
Stack
Monotonic-Stack
Hash-Map
Next-Greater-Element
單調遞減堆疊處理 nums2,預先建立下一個更大元素對照表,回答 nums1 查詢。
LeetCode 2487: Remove Nodes From Linked List
·1 分鐘
LeetCode
Medium
Linked-List
Stack
Recursion
Monotonic-Stack
LeetCode 2487 解題筆記:保留的節點從左到右是非遞增的;用單調棧,比新節點小的都彈掉,最後把棧裡的節點串起來
LeetCode 2000: Reverse Prefix of Word
·1 分鐘
LeetCode
Easy
Two-Pointers
String
Stack
LeetCode 2000 解題筆記:找到 ch 第一次出現的位置 i,把 word[:i + 1] 反轉接上後面;找不到就原樣回傳
LeetCode 735: Asteroid Collision
·1 分鐘
LeetCode
Medium
Array
Stack
Simulation
LeetCode 735 解題筆記:從左到右用 stack,只有「stack 頂端往右、目前的往左」才會相撞,小的爆掉,一樣大一起爆
LeetCode 402: Remove K Digits
·1 分鐘
LeetCode
Medium
String
Stack
Greedy
Monotonic-Stack
LeetCode 402 解題筆記:單調遞增 stack,遇到比頂端小的數字就把頂端刪掉(還有 k 次可刪時),最後去掉前導零
LeetCode 227: Basic Calculator II
·1 分鐘
LeetCode
Medium
Math
String
Stack
LeetCode 227 解題筆記:先把數字讀完整,遇到運算子時處理上一個運算子:+ - 把數放進 stack(減號放負數),* / 直接跟頂端算
LeetCode 143: Reorder List
·1 分鐘
LeetCode
Medium
Linked-List
Two-Pointers
Stack
Recursion
LeetCode 143 解題筆記:找中點、反轉後半段、兩條交錯合併;前半段的尾巴要切斷
LeetCode 42: Trapping Rain Water
·1 分鐘
LeetCode
Hard
Array
Two-Pointers
Dynamic-Programming
Stack
LeetCode 42 解題筆記:每格能存的水是 min(左邊最高, 右邊最高) - 自己的高度;用前後綴最大值或左右雙指針
LeetCode 71: Simplify Path
·1 分鐘
LeetCode
Medium
String
Stack
LeetCode 71 解題筆記:用 / 切開,空字串和 . 跳過,.. 就 pop(根目錄不能再往上),其他名稱 push,最後用 / 接起來
LeetCode 1047: Remove All Adjacent Duplicates In String
·1 分鐘
LeetCode
Easy
String
Stack
LeetCode 1047 解題筆記:stack 頂端跟目前字元相同就一起消掉,否則放進 stack;消掉之後新的頂端可能又能跟下一個消
LeetCode 1021: Remove Outermost Parentheses
·1 分鐘
LeetCode
Easy
String
Stack
Bracket-Sequences
LeetCode 1021 解題筆記:用深度計數取代 stack,深度從 0 變 1 的左括號和從 1 變 0 的右括號是外層,其他都保留