★LeetCode刷題最重要題目精解
★資料結構程式語言紮實基礎
★演算法完整實作
★陣列、鏈結串列、樹、搜尋、佇列、圖演算法
★LRU、LFU快取
★費氏數列、N皇后問題、背包問題
★Union-Find
★Kruskal演算法
?
本書專攻演算法刷題,訓練演算法思維,應對演算法筆試,注重用策略和框架思維解決問題,以不變應萬變。
?
第1章列舉了幾個最常見的演算法類型及對應的解題框架思路,包括雙指標、滑動視窗等演算法技巧,並把動態規劃、回溯演算法、廣度優先搜索等技巧的核心抽象為二元樹的兩種問題形式。第2章介紹了基礎資料結構相關的演算法,包括陣列鏈結串列的常見技巧整理和資料結構設計的經典例題。第3章從二元樹的幾種解題思路開始,嘗試從二元樹的角度理解快速排序和歸併排序,進一步講解回溯、DFS、BFS等暴力搜索演算法。第4章具體介紹了動態規劃相關的技巧,例如如何確定base case,如何寫狀態轉移方程式,如何進行狀態壓縮等技巧,並用動態規劃的通用思路框架解決了十幾道經典的動態規劃問題。第5章講解了一些高頻面試/筆試題目,每道題目可能會結合之前章節講過的多種演算法思路,也可能有多種解法。