本書專攻算法刷題,訓(xùn)練算法思維,應(yīng)對(duì)算法筆試,注重用套路和框架思維解決問題,以不變應(yīng)萬變。第1章列舉了幾個(gè)最常見的算法類型及對(duì)應(yīng)的解題框架思路,包括雙指針、滑動(dòng)窗口等算法技巧,并把動(dòng)態(tài)規(guī)劃、回溯算法、廣度優(yōu)先搜索等技巧的核心抽象為二叉樹的兩種問題形式。第2章介紹了基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)相關(guān)的算法,包括數(shù)組鏈表的常見技巧匯總和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的經(jīng)典例題。第3章從二叉樹的幾種解題思路開始,嘗試從二叉樹的視角理解快速排序和歸并排序,進(jìn)一步講解回溯、DFS、BFS等暴力搜索算法。第4章具體介紹了動(dòng)態(tài)規(guī)劃相關(guān)的技巧,例如如何確定base case,如何寫狀態(tài)轉(zhuǎn)移方程,如何進(jìn)行狀態(tài)壓縮等技巧,并用動(dòng)態(tài)規(guī)劃的通用思路框架解決了十幾道經(jīng)典的動(dòng)態(tài)規(guī)劃問題。第5章講解了一些高頻面試/筆試題目,每道題目可能會(huì)結(jié)合之前章節(jié)講過的多種算法思路,也可能有多種解法。讀完這一章,你就可以獨(dú)自遨游題海啦!
付東來(@labuladong為其網(wǎng)名),微信公眾號(hào)labuladong的作者,有多年的刷題經(jīng)驗(yàn),希望用通俗的語言幫助廣大互聯(lián)網(wǎng)從業(yè)者少走彎路,快速從根本上攻克算法難關(guān),為職業(yè)道路的發(fā)展賦能。