首頁>科技>

前言

面試時,如果沒有拿得出手的實戰專案證明自己能力,面試官只能透過演算法題來評估你。

力扣的演算法題因被BAT、京東、美團、位元組跳動、滴滴、拼多多、微軟、亞馬遜、Google、Facebook等一線科技公司選作面試題而名聲大噪。

不過很少有人能刷完力扣的上千道題,這本“演算法筆記”就把這些海量演算法題分門別類彙總,提煉出各類題的套路和解題框架,幫助你快速掌握演算法思維,以不變應萬變來應對網際網路公司的各種演算法題!

並且這本演算法筆記在GitHub上面標星76.8K了!

作者簡介

作者是ios開發工程師,校招進入阿里巴巴後,轉做Go語言服務端開發。(這本演算法筆記主推Java語言使用者學習閱讀

他在校期間連續三年參加ACM-ICPC競賽。從參賽開始,原計劃每天刷一道演算法題,實際上每天有時候不止一題,一年最終完成了 600+:

憑藉三年刷題經驗,他在校招中很快拿到了各大公司的offer,最終他選擇了阿里巴巴。入職前,他把他的刷題經驗總結成書,作為禮物贈送給他的學弟學妹,希望同學們都能在最短時間內掌握校招常見的演算法及解題思路。

演算法筆記的魅力

當你熟讀一遍之後就會發現這些都是白給的套路,誰能不愛!

再加上書中用喜聞樂見的語言來講述演算法,還配上了幾百幅有趣的演算法圖示及部分動畫演示。

不禁感慨,這本書確實配得上這個排名!

傳授最高效的學習方式

你是否有過這種感覺:資料結構和演算法我以前學得挺好的,為啥這些演算法題我完全沒思路呢?

面對這種疑惑,有人可能會擺出好幾本與演算法相關的大部頭,建議你去進修。可如果學習演算法是為了應對考試和麵試(相信大部分人是這樣),這時去啃一些大部頭專著顯然就得不償失了。

而更高效的方法是直接刷題!

但是,刷題也是有技巧的,刷題平臺上動輒幾千道題,難道你要全刷完嗎?正確刷題方式是——

邊刷邊歸納總結,抽象出每種題型的套路框架。

比如,刷一道演算法題,解題思路有什麼可複用的地方,是否可以和之前做的某一道題聯絡起來?

再比如,都說動態規劃問題難,千變萬化,但這類問題本身是不是有一些特性,是不是能夠抽象出一套抽象的指導方法來做動態規劃問題?

在此書中,已經為你全部總結好了這些核心框架,並且直接集中放到了開篇第一章,後續章節精選了八十道力扣演算法題,手把手教你如何運用演算法框架去解決實際演算法問題。

本書專攻演算法刷題,訓練演算法思維,應對演算法筆試。且作者,江湖人稱Offer收割機,有著多年的刷題經驗,有著他的經驗加持,相信把這本書刷完,你也可以培養出框架思維!

不侷限於具體程式語言

本書有一點和其他的書不太一樣,書中並沒有統一程式語言,而是混用了三種最常用的程式語言:Python、C++ 和 Java。

比如,一道題我們用 Python 來寫解法,下一道題可能用 Java 來寫解法。又或者說,對於同一道題,我們用 Python 形式的虛擬碼描述某個演算法的框架套路,最後用 C++ 寫解法實現這個演算法。

為什麼要這樣做呢?

刷演算法題是在養成一種思維模式,不應該侷限於具體的程式語言。每一種語言都有缺點,我們到底選擇用哪一種語言來解某道題目的根本依據是,解法的思路是否可以避開隱晦的語言特性,做到清晰易懂。

不用擔心有的語言你不熟悉,演算法根本用不到程式語言層面的技巧,本書會秉持最小化語言特性的原則,只會介紹本書中用到的資料結構和對應的 API,只要你學過任何一門程式語言,很容易就能明白。(書中也會統一介紹三種語言的基本操作)

對於有時間的同學,作者還給出了他結合眾多資料結構演算法書籍,挑選出的一千多道題的解題思路和方法,以供有需要的同學慢慢研究。

這本筆記總共1120頁,涵蓋了常見筆試面試演算法和所有型別演算法題的題解思路。整本書排版非常精美,每個題目先給出解題思路,然後再給出原始碼,必要時會用插圖展示解題邏輯。

所有的題目作者還給出了原始碼,讀者可以直接執行。

寫在最後

在國內外各大IT公司的面試流程中,考察候選人演算法能力是極其重要的一環。刷演算法題既可以提高我們的面試優勢,也充分鍛鍊了我們的邏輯思維能力。這本演算法小抄,用生動的語言為我們講解了許多經典的演算法題目,對想要提升演算法能力的小夥伴很有幫助。

11
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 痛失2千萬使用者?三大運營商猝不及防,網友:套路太多,意料之中