玩轉(zhuǎn)算法面試 從真題到思維全面提升算法思維
相信這是一門非常及時(shí)的課程,送給面試在即的你,學(xué)完這門課程,對(duì)于面試中遇到的大多數(shù)算法問題,你都會(huì)迎刃而解,但課程絕不止于面試,同樣適合即將參加各類算法競(jìng)賽的同學(xué),重要的是提升你的算法思維,這將是貫穿你編程生涯的核心內(nèi)功!
第1章 算法面試到底是什么鬼?
一提起算法面試,很多同學(xué)就會(huì)心有余悸?善鋵(shí),大多數(shù)企業(yè)的算法面試,并沒有那么可怕。并不是一定要啃完整本《算法導(dǎo)論》,才能玩兒轉(zhuǎn)算法面試;也并不是只有ACM參賽選手,才能笑傲算法面試。恰恰相反,大多數(shù)算法面試關(guān)注的算法思維,其實(shí)很基礎(chǔ)。在這一章,和大家聊一聊,算法面試,到底是什么鬼?...
第2章 面試中的復(fù)雜度分析
很多同學(xué)一提起復(fù)雜度分析就頭疼,馬上想起了《算法導(dǎo)論》中復(fù)雜的數(shù)學(xué)推導(dǎo)。但其實(shí)在一般的企業(yè)面試中,對(duì)復(fù)雜度的分析要求并沒有那么高,但也是繞不過去的坎兒。在這一章,和大家介紹一下,面試中需要掌握的復(fù)雜度分析。...
第3章 數(shù)組中的問題其實(shí)最常見
面試中的算法問題,有很多并不需要復(fù)雜的數(shù)據(jù)結(jié)構(gòu)支撐。就是用數(shù)組,就能考察出很多東西了。其實(shí),經(jīng)典的排序問題,二分搜索等等問題,就是在數(shù)組這種最基礎(chǔ)的結(jié)構(gòu)中處理問題的。在這一章中,我們學(xué)習(xí)常見的數(shù)組中處理問題的方法。...
第4章 查找表相關(guān)問題
查找,是使用計(jì)算機(jī)處理問題時(shí)的一個(gè)最基本的任務(wù),因此也是面試中非常常見的一類問題。很多算法問題的本質(zhì),就是要能夠高效查找。學(xué)會(huì)使用系統(tǒng)庫(kù)中的map和set,就已經(jīng)成功了一半。
第5章 在鏈表中穿針引線
鏈表是一種特殊的線性結(jié)構(gòu),由于不能像數(shù)組一樣進(jìn)行隨機(jī)的訪問,所以和鏈表相關(guān)的問題有他自身的特點(diǎn)。我將之稱為穿針引線。我們?cè)谶@一章,就來看一看,如何在鏈表中穿針引線。
第6章 棧,隊(duì)列,優(yōu)先隊(duì)列
棧和隊(duì)列雖然是簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),但是使用這些簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)所解決的算法問題不一定簡(jiǎn)單。在這一章里,我們將來探索,和棧與隊(duì)列相關(guān)的算法問題。
第7章 二叉樹和遞歸
遞歸,是使用計(jì)算機(jī)解決問題的一種重要的思考方式。而二叉樹由于其天然的遞歸結(jié)構(gòu),使得基于二叉樹的算法,均擁有著遞歸性質(zhì)。使用二叉樹,是研究學(xué)習(xí)遞歸算法的最佳入門方式。在這一章里,我們就來看一看二叉樹中的遞歸算法。...
第8章 遞歸和回溯法
回溯法是解決很多算法問題的常見思想,甚至可以說是傳統(tǒng)人工智能的基礎(chǔ)方法。其本質(zhì)依然是使用遞歸的方法在樹形空間中尋找解。在這一章,我們來具體看一下將遞歸這種技術(shù)使用在非二叉樹的結(jié)構(gòu)中,從而認(rèn)識(shí)回溯這一基礎(chǔ)算法思想。...
第9章 動(dòng)態(tài)規(guī)劃基礎(chǔ)
很多同學(xué)聽到“動(dòng)態(tài)規(guī)劃”的名稱可能會(huì)望而生畏,覺得動(dòng)態(tài)規(guī)劃的問題都很復(fù)雜。但其實(shí),動(dòng)態(tài)規(guī)劃本質(zhì)依然是遞歸算法,只不過是滿足特定條件的遞歸算法。在這一章里,我們就來逐步解開動(dòng)態(tài)規(guī)劃的神秘面紗
第10章 貪心算法
通常同學(xué)們可能會(huì)認(rèn)為貪心算法比較簡(jiǎn)單。確實(shí),通常貪心算法的實(shí)現(xiàn)非常容易,但是,一個(gè)問題是否能夠使用貪心算法,是一定要小心的。我們?cè)谶@一章來看一看,貪心算法可能會(huì)有哪些坑。
第11章 課程結(jié)語(yǔ)
看完整個(gè)課程,我不能保證所有的同學(xué)都能百分百地對(duì)每一個(gè)算法面試問題應(yīng)答自如,但認(rèn)真學(xué)習(xí)的同學(xué)對(duì)大部分問題都應(yīng)該已經(jīng)有了一個(gè)合理的思維路徑。在最后一章,我們?cè)賮砗?jiǎn)單地總結(jié)一下,并祝每一位同學(xué)都能找到自己喜歡的工作,大展宏圖:)...