
📘 深度概覽
資料來源與整理脈絡#
本題庫的原始題源為 LeetCode,但組織方式並未沿用其官方的「難度/題號/標籤」分類,而是參考 NeetCode 廣為流傳的 Roadmap 框架,將題目重新依「演算法模式(algorithmic pattern)」歸入 18 個章節。每題在 site/content/docs/<pattern>/<problem>/_index.md 以結構化筆記呈現,包含 Intuition、Approaches、Takeaways 三段,並透過自製 leetcode_info 與 leetcode_grid shortcode 統一卡片樣式。實作語言以 Kotlin(JVM)為主,可長期保留的解法置於 solutions/ 模組並配 JUnit5 測試;尚在迭代的草稿放在 playground/。與直接刷 LeetCode 的差異在於:本筆記強調跨章節的模式遷移、Kotlin 慣用語的取捨,以及與姊妹 repo algorithms-data-structures 的雙向跨倉導讀連結。
完整摘要#
題庫共收錄約 420 題,按 18 個演算法模式組織,覆蓋 NeetCode Roadmap 全圖譜:Array & Hashing(60 題,最大宗)、Two Pointers(18 題)、Stack(19 題)、Binary Search(24 題)、Sliding Window(15 題)、Linked List(29 題)、Trees(45 題)、Tries(4 題)、Heap / Priority Queue(18 題)、Intervals(8 題)、Greedy(19 題)、Advanced Graphs(11 題)、Backtracking(18 題)、Graphs(38 題)、1D DP(34 題)、2D DP(28 題)、Bit Manipulation(10 題)與 Math & Geometry(22 題)。
各章皆建立可重用的解題框架:陣列/雜湊以索引與 key-value 對應換取 O(1) 查找;雙指針區分相向(配對)與快慢(環偵測、中點);滑動視窗以「右擴左縮」把暴力的 O(n²) 壓到 O(n);二分搜尋從「排序陣列」推廣到「答案空間上具單調性」即可二分;樹題以 DFS(前/中/後序)與 BFS(層序)為主,BST 的中序有序性是關鍵性質;圖題在鄰接矩陣/表上做 BFS、DFS、Union-Find、拓撲排序,進階圖再疊上 Dijkstra、Bellman-Ford、Prim/Kruskal;回溯遵循「選擇 → 遞迴 → 撤銷」模板並輔以剪枝;DP 以狀態定義與轉移方程為核心,一維題常用滾動變數壓空間,二維題多為網格座標或雙字串索引;貪心須驗證局部最優性質,失敗時退回 DP。章節之間存在進階關係:Stack → Monotonic Stack、Heap → 中位數雙堆、Trees → Tries → 字串檢索、Graphs → Advanced Graphs → DP on Graph 等,可循序累積。
適用情境與閱讀路徑#
本筆記主要服務兩類讀者:(1)準備技術面試、需要在有限時間內建立可遷移解題模式的工程師;(2)已熟悉資料結構理論、希望透過實題鞏固模式辨識(pattern recognition)能力的學習者。建議路徑有二:若為首次系統化準備,依章節 weight 順序(1 → 18)逐步深入,每章先讀 _index.md 的模式總覽再挑代表題;若已有基礎,則以「題目卡片網格」按需查閱,並透過各章「跨倉庫導讀」回到 algorithms-data-structures
↗ 補理論。讀完/練完應能在面對新題時,於 30 秒內判斷該套用哪一類模式並寫出對應骨架。