LeetCode 100 題策略
從 0 到面試錄取
刷 500 題不會、刷 100 題對的題會 ─ 整理出 6 大類 × 100 題的完整策略路徑、加上「主題式吸收法」跟「錯題本系統」。給準備轉職、跳槽、新鮮人面試的工程師、不講花俏、只講行得通。
※ 本文題型分類參考 NeetCode 150、Blind 75、Grind 75 等公開資源整理。具體題目難度可能會因 LeetCode 更新而調整。
先把3 個迷思打掉
01 刷越多越好
錯。
很多人刷 300+ 題、結果面試還是卡 ─ 因為他們是「看過就跳下一題」的方式。每題花 15 分鐘、500 題刷完只記得幾個寫法。
正確的是「少而精」:100 題、每題 3 個回合(首刷 / 復刷 / 變形題)、合計每題花 1.5 小時 ─ 100 題就是 150 小時。
02 從 Easy 開始按順序刷
也錯。
按 LeetCode 號碼順序刷、你會「會 Two Sum、會 Reverse Linked List、會 Valid Parentheses」 ─ 然後面試遇到 Sliding Window 還是不會。
正確的是「按主題刷」:一次只練 1 個 topic、刷到該 topic 的 pattern 自動浮出來、再換下一個。
03 不用做筆記、看過就好
這是最大的錯。
人會忘。100 題裡你今天會的、2 週後可能忘 60 題。沒寫錯題本、等於沒刷。
核心策略 ─主題式吸收法
這套方法不是我發明的、是面試準備界的共識做法。我只是整理成執行流程:
- 選 1 個 topic(例:Sliding Window)
- 讀 1 個概念講解(任何教學影片或文章、20-30 分鐘)
- 刷 3 題 Easy(看解答前先想 15 分鐘、想不出來再看)
- 刷 5 題 Medium(同上、但限時 25 分鐘)
- 看 1-2 題 Hard 的解答(不用自己想、學「最強解法長什麼樣」)
- 寫該 topic 的「模板」筆記(看到什麼條件就用什麼解法)
- 3 天後復刷 1 題(測試自己有沒有忘)
1 個 topic = 1 週時間。10 個 topic = 10 週、合計約 100 題。
這比按號碼亂刷 300 題效果好 10 倍。
10 個必刷 topic + 推薦題目分布
| 順序 | Topic | 題數 | 核心 pattern |
|---|---|---|---|
| 01 | Array / Hash Map | 12 | 用 hash 換 O(n²) → O(n) |
| 02 | Two Pointers | 10 | 有序陣列、原地處理 |
| 03 | Sliding Window | 10 | 連續子陣列 / 字串問題 |
| 04 | Stack / Queue | 8 | 括號匹配、monotonic stack |
| 05 | Binary Search | 10 | 找邊界、答案空間二分 |
| 06 | Linked List | 8 | 反轉、merge、cycle 偵測 |
| 07 | Tree / BST | 12 | DFS、BFS、遞迴模板 |
| 08 | Graph / BFS / DFS | 10 | 島嶼問題、最短路徑 |
| 09 | Dynamic Programming | 15 | 狀態轉移、最值問題 |
| 10 | Heap / Greedy | 5 | Top K、優先佇列 |
合計 100 題。10 週可完成(每天約 1.5-2 小時)。
想找具體題目清單?建議用 NeetCode 150 / Blind 75 兩個公開清單對照、它們是業界共識的高 CP 值題集。
進階心法 ─4 個沒人講的細節
01 想 15 分鐘想不出來、看解答沒事
很多人卡住的點 ─ 「我看解答就是作弊」。
錯。
看解答有沒有用、取決於你怎麼看:
- ❌ 看完直接 copy ─ 沒用、下次還是不會
- ✅ 看完 close 視窗、自己重寫 ─ 有用
- ✅ 寫完反問「為什麼這樣設計?」「換條件還會這樣寫嗎?」 ─ 最有用
02 每題寫完都口頭解釋一次
這是面試最容易忽略的訓練 ─ 面試官要的不是 code、是「你解釋你的 code 的能力」。
每題刷完、想像有面試官在前面、用 3 分鐘口頭講:
- 問題是什麼?
- 我用什麼方法?為什麼選這個?
- 時間複雜度?空間複雜度?
- 有什麼 edge case?
- 有沒有更快的解?
很多人 code 寫得出來、講不出來 ─ 面試官會以為你只是背答案。
03 錯題本要這樣寫
推薦結構(用 Notion / Obsidian / 紙本都行):
## 題目編號 + 標題
LC 121. Best Time to Buy and Sell Stock
## Pattern
Single-pass + tracking min
## 第一次卡在哪
我想用 brute force O(n²)、忘記可以 O(n)
## 關鍵想法
維護「目前看過的最小值」、每步算「如果今天賣會賺多少」
## Code 模板
```python
def maxProfit(prices):
min_price = float('inf')
max_profit = 0
for p in prices:
min_price = min(min_price, p)
max_profit = max(max_profit, p - min_price)
return max_profit
```
## 變形題
- LC 122 ─ 可以多次買賣
- LC 309 ─ 有 cooldown
## 復刷紀錄
- 2026-04-01:首刷、卡 20 min、看解答
- 2026-04-15:復刷、10 min 解出
- 2026-05-01:再刷、3 min 直接出
這個結構的好處 ─ 你 3 個月後翻錯題本、能 5 分鐘 refresh 整個 topic。
04 練到「會用模板」、不要練到「背題目」
兩種人差距很大:
- 背題型:「這題我刷過、我記得 code 怎麼寫」 ─ 變形題就死
- 模板型:「這題給的條件 X、我用模板 A;給條件 Y、我用模板 B」 ─ 變形題照樣解
訓練方法:每個 topic 練完、自己寫「遇到什麼條件、套什麼模板」的判斷流程。
舉例(Sliding Window):
- 看到「連續子陣列」+「滿足某條件」 → 想 sliding window
- 窗口大小固定 → fixed-size template
- 窗口大小可變 → variable-size template
- 同時要 distinct 元素 → 加 hash map 紀錄
有這個流程、看到新題目你能在 30 秒內判斷該用什麼模板。
多久能練完?3 個現實階段
完全沒概念 → 看得懂 Easy(4 週)
重點:學 Array + Hash Map + Two Pointers + Linked List 4 個 topic、合計約 38 題。
這階段 ─ 不用追求快、要建立「看得懂題目 + 寫得出 brute force」的能力。
看得懂 Easy → 解得出 Medium(5 週)
補:Sliding Window + Stack + Binary Search + Tree、合計約 40 題。
這階段最容易卡 ─ 因為 Medium 不再是「換變數名 brute force」、需要動腦想 pattern。耐住性子、不要跳級寫 Hard。
解得出 Medium → 應付面試(3 週)
補:Graph + DP + Heap、合計約 30 題。
這階段不追求「全都會」、要的是「常見題型有 pattern、Hard 至少能講出思路」。
合計 12 週、約 3 個月。每天 1.5-2 小時、可以兼顧上班。
最常見的5 個放棄點
- 「我數學不好、學不會」 ─ LeetCode 85% 題目跟數學無關
- 「Hard 我看不懂、放棄」 ─ 90% 公司不考 Hard、會 Medium 已超過大多數人
- 「刷一個月還是不會、是不是沒天分」 ─ 1 個月只是熱身、進入狀態要 6-8 週
- 「我自己讀很慢、是不是要報課」 ─ 90% 人不需要課、需要的是 1-2 次有經驗的人 unblock 你的卡點
- 「Mock interview 我講不清楚」 ─ 那就多 mock、找朋友、找付費的、或加我 LINE 我跟你 mock 看看
最後一個提醒
LeetCode 不是智力測驗、是技能訓練。
智力測驗看天分、技能訓練看時間。
你不是不會、你只是還沒練夠。
這 100 題的路徑 ─ 我自己走過、我帶過的人走過、它是少數真的有用的 SEO 文章建議。
剩下的、看你願不願意每天 1.5 小時。
想要有人陪你不放棄地刷?
我提供 LeetCode 1-on-1 陪刷 ─ 6 種套裝、最便宜的單次 NT$1,500、有完整 100 題路徑跟 mock interview。卡多久解多久、不會卡到放棄為止。