幫助中心 | 我的帳號 | 關於我們

labuladong的演算法筆記

  • 作者:付東來|責編:張月萍
  • 出版社:電子工業
  • ISBN:9787121457821
  • 出版日期:2023/08/01
  • 裝幀:平裝
  • 頁數:503
人民幣:RMB 119 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書專攻演算法刷題,訓練演算法思維,應對演算法筆試,注重用套路和框架思維解決問題,以不變應萬變。
    第1章列舉了幾個最常見的演算法類型及對應的解題框架思路,包括雙指針、滑動窗口等演算法技巧,並把動態規劃、回溯演算法、廣度優先搜索等技巧的核心抽象為二叉樹的兩種問題形式。
    第2章介紹了基礎數據結構相關的演算法,包括數組鏈表的常見技巧匯總和數據結構設計的經典例題。
    第3章從二叉樹的幾種解題思路開始,嘗試從二叉樹的視角理解快速排序和歸併排序,進一步講解回溯、DFS、BFS等暴力搜索演算法。
    第4章具體介紹了動態規劃相關的技巧,例如如何確定basecase,如何寫狀態轉移方程,如何進行狀態壓縮等技巧,並用動態規劃的通用思路框架解決了十幾道經典的動態規劃問題。
    第5章講解了一些高頻面試/筆試題目,每道題目可能會結合之前章節講過的多種演算法思路,也可能有多種解法。讀完這一章,你就可以獨自遨遊題海啦!

作者介紹
付東來|責編:張月萍
    付東來(@labulandong),微信公眾號labuladong的作者,有多年的刷題經驗,希望用通俗的語言幫助廣大互聯網從業者少走彎路,快速從根本上攻克演算法難關,為職業道路的發展賦能。

目錄
本書約定
編程語言基礎
第1章  核心框架篇
  1.1  學習數據結構和演算法的框架思維
    1.1.1  數據結構的存儲方式
    1.1.2  數據結構的基本操作
    1.1.3  演算法屏1題指南
  1.2  電腦演算法的本質
    1.2.1  演算法的本質
    1.2.2  數組/單鏈表系列演算法
    1.2.3  二叉樹系列演算法
    1.2.4  最後總結
  1.3  動態規劃解題套路框架
    1.3.1  斐波那契數列
    1.3.2  湊零錢問題
    1.3.3  最後總結
  1.4  回溯演算法解題套路框架
    1.4.1  全排列問題
    1.4.2  N皇后問題
    1.4.3  最後總結
  1.5  BFS演算法解題套路框架
    1.5.1  演算法框架
    1.5.2  二叉樹的最小高度
    1.5.3  解開密碼鎖的最少次數
    1.5.4  雙向BFS優化
  1.6  手把手帶你刷二叉樹(綱領)
    1.6.1  二叉樹的重要性
    1.6.2  深入理解前、中、後序
    1.6.3  兩種解題思路
    1.6.4  後序位置的特殊之處
    1.6.5  層序遍歷
  1.7  我寫了首詩,保你閉著眼睛都能寫出二分搜索演算法
    1.7.1  二分搜索框架
    1.7.2  尋找一個數(基本的二分搜索)
    1.7.3  尋找左側邊界的二分搜索
    1.7.4  尋找右側邊界的二分搜索
    1.7.5  邏輯統一
  1.8  我寫了一個模板,把滑動窗口演算法變成了默寫題
    1.8.1  最小覆蓋子串
    1.8.2  字元串排列
    1.8.3  找所有字母異位詞
    1.8.4  最長無重複子串
第2章  手把手刷數據結構
  2.1  數組、鏈表
    2.1.1  單鏈表的六大解題套路
    2.1.2  數組雙指針的解題套路
    2.1.3  小而美的演算法技巧:前綴和數組
    2.1.4  小而美的演算法技巧:差分數組
  2.2  數據結構設計
    2.2.1  演算法就像搭樂高:帶你手寫LRU演算法

    2.2.2  演算法就像搭樂高:帶你手寫LFU演算法
    2.2.3  以O(1)時間複雜度刪除/查找數組中的任意元素
    2.2.4  單調棧結構解決三道演算法題
    2.2.5  單調隊列結構解決滑動窗口問題
第3章  手把手培養演算法思維
  3.1  二叉樹
    3.1.1  手把手帶你刷二叉樹(思路)
    3.1.2  手把手帶你刷二叉樹(構造)
    3.1.3  手把手帶你刷二叉樹(序列化)
    3.1.3  零、前/中/後序和二叉樹的唯一性
    3.1.4  歸併排序詳解及運用
  3.2  二叉搜索樹
    3.2.1  手把手帶你刷二叉搜索樹(特性應用)
    3.2.2  手把手帶你刷二叉搜索樹(增刪查改)
    3.2.3  快速排序詳解及運用
  3.3  圖論演算法
    3.3.1  圖論演算法基礎
    3.3.2  Union-Find演算法詳解
    3.3.3  最小生成樹之Kruskal演算法
  3.4  暴力搜索演算法
    3.4.1  回溯演算法解決子集、排列、組合問題
    3.4.2  經典回溯演算法:集合劃分問題
    3.4.3  DFS演算法搞定島嶼系列題目
    3.4.4  BFS演算法解決智力遊戲
第4章  手把手刷動態規劃
  4.1  動態規劃核心原理
    4.1.1  basecase和備忘錄的初始值怎麼定
    4.1.2  最優子結構和ap數組的遍歷方向怎麼定
    4.1.3  演算法時空複雜度分析實用指南
    4.1.4  動態規劃的降維打擊:空間壓縮技巧
  4.2  子序列類型問題
    4.2.1  動態規劃設計:最長遞增子序列
    4.2.2  詳解最大子數組和
    4.2.3  詳解編輯距離問題
    4.2.4  詳解最長公共子序列問題
    4.2.5  詳解正則匹配問題
    4.2.6  子序列問題解題模板
  4.3  背包問題
    4.3.1  0-1背包問題解題框架
    4.3.2  背包問題變體之子集分割
    4.3.3  背包問題之零錢兌換
  4.4  用動態規劃玩遊戲
    4.4.1  最小路徑和問題
    4.4.2  動態規劃演算法通關《魔塔》
    4.4.3  高樓扔雞蛋問題
    4.4.4  戳氣球問題
第5章  高頻面試系列
  5.1  鏈表操作的遞歸思維一覽
    5.1.1  遞歸反轉整個鏈表
    5.1.2  反轉鏈表前N個節點

    5.1.3  反轉鏈表的一部分
  5.2  田忌賽馬背後的演算法決策
  5.3  一道數組去重的演算法題把我整蒙了
  5.4  帶權重的隨機選擇演算法
    5.4.1  解法思路
    5.4.2  解法代碼
  5.5  二分搜索題型套路分析
    5.5.1  原始的二分搜索代碼
    5.5.2  二分搜索問題的泛化
    5.5.3  運用二分搜索的套路框架
    5.5.4  例題一:珂珂吃香蕉
    5.5.5  例題二:運送貨物
    5.5.6  例題三:分割數組
  5.6  如何高效解決接雨水問題
    5.6.1  核心思路
    5.6.2  備忘錄優化
    5.6.3  雙指針解法
    5.6.4  擴展延伸
  5.7  一個函數解決nSum問題
    5.7.1  twoSum問題
    5.7.2  3Sum問題
    5.7.3  4Sum問題
    5.7.4  100Sum問題
  5.8  一個方法解決最近公共祖先問題
    5.8.1  尋找一個元素
    5.8.2  解決五道題目

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032