回到 Blog

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. 選 1 個 topic(例:Sliding Window)
  2. 讀 1 個概念講解(任何教學影片或文章、20-30 分鐘)
  3. 刷 3 題 Easy(看解答前先想 15 分鐘、想不出來再看)
  4. 刷 5 題 Medium(同上、但限時 25 分鐘)
  5. 看 1-2 題 Hard 的解答(不用自己想、學「最強解法長什麼樣」)
  6. 寫該 topic 的「模板」筆記(看到什麼條件就用什麼解法)
  7. 3 天後復刷 1 題(測試自己有沒有忘)

1 個 topic = 1 週時間。10 個 topic = 10 週、合計約 100 題

這比按號碼亂刷 300 題效果好 10 倍。


10 個必刷 topic + 推薦題目分布

順序 Topic 題數 核心 pattern
01Array / Hash Map12用 hash 換 O(n²) → O(n)
02Two Pointers10有序陣列、原地處理
03Sliding Window10連續子陣列 / 字串問題
04Stack / Queue8括號匹配、monotonic stack
05Binary Search10找邊界、答案空間二分
06Linked List8反轉、merge、cycle 偵測
07Tree / BST12DFS、BFS、遞迴模板
08Graph / BFS / DFS10島嶼問題、最短路徑
09Dynamic Programming15狀態轉移、最值問題
10Heap / Greedy5Top K、優先佇列

合計 100 題。10 週可完成(每天約 1.5-2 小時)。

想找具體題目清單?建議用 NeetCode 150 / Blind 75 兩個公開清單對照、它們是業界共識的高 CP 值題集。


進階心法 ─4 個沒人講的細節

01 想 15 分鐘想不出來、看解答沒事

很多人卡住的點 ─ 「我看解答就是作弊」

錯。

看解答有沒有用、取決於你怎麼看:

  • ❌ 看完直接 copy ─ 沒用、下次還是不會
  • ✅ 看完 close 視窗、自己重寫 ─ 有用
  • ✅ 寫完反問「為什麼這樣設計?」「換條件還會這樣寫嗎?」 ─ 最有用

02 每題寫完都口頭解釋一次

這是面試最容易忽略的訓練 ─ 面試官要的不是 code、是「你解釋你的 code 的能力」

每題刷完、想像有面試官在前面、用 3 分鐘口頭講:

  1. 問題是什麼?
  2. 我用什麼方法?為什麼選這個?
  3. 時間複雜度?空間複雜度?
  4. 有什麼 edge case?
  5. 有沒有更快的解?

很多人 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 個放棄點

  1. 「我數學不好、學不會」 ─ LeetCode 85% 題目跟數學無關
  2. 「Hard 我看不懂、放棄」 ─ 90% 公司不考 Hard、會 Medium 已超過大多數人
  3. 「刷一個月還是不會、是不是沒天分」 ─ 1 個月只是熱身、進入狀態要 6-8 週
  4. 「我自己讀很慢、是不是要報課」 ─ 90% 人不需要課、需要的是 1-2 次有經驗的人 unblock 你的卡點
  5. 「Mock interview 我講不清楚」 ─ 那就多 mock、找朋友、找付費的、或加我 LINE 我跟你 mock 看看

最後一個提醒

LeetCode 不是智力測驗、是技能訓練
智力測驗看天分、技能訓練看時間。
你不是不會、你只是還沒練夠

這 100 題的路徑 ─ 我自己走過、我帶過的人走過、它是少數真的有用的 SEO 文章建議。

剩下的、看你願不願意每天 1.5 小時。

想要有人陪你不放棄地刷?

我提供 LeetCode 1-on-1 陪刷 ─ 6 種套裝、最便宜的單次 NT$1,500、有完整 100 題路徑跟 mock interview。卡多久解多久、不會卡到放棄為止。

看 LeetCode 1-on-1 套裝 LINE 直接問