大廠面試喜歡考算法,該怎么破?
??點擊“博文視點Broadview”,獲取更多書訊

這兩年的軟件工程師面試可謂神仙打架!
有些 985、211 院校畢業(yè)的高材生都沒有拿到滿意的 Offer。國內(nèi)一些大公司的門檻也越來越高,這里的門檻很大程度上體現(xiàn)為對算法能力的要求。
很多人因為算法能力不過關(guān)而喪失了自己滿意的 Offer。
然而,雖然算法能力的門檻越來越高,但是面試題的類型和底層邏輯是不變的,甚至不少公司考察的都是 LeetCode 原題,這其中也包括了國內(nèi) ATM 等大公司。

算法面試都考什么?
如果從大的方向,可以將考察點分成兩類。第一類是數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)知識,第二類是算法思想。
數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)知識
這部分,我又做了一個小小的細分,將其分為兩個小點。
(1)各種數(shù)據(jù)結(jié)構(gòu)的特性與基本操作
比如數(shù)組、隊列、棧、鏈表、樹、圖等。尤其需要掌握的棧和樹。這是因為使用到棧和樹的地方實在太多了。比如 DOM 樹(虛擬 DOM 樹)、樹形選擇器、瀏覽器執(zhí)行棧、瀏覽器歷史記錄棧,等等。
另外,圍繞棧和樹的題目也相當(dāng)多,從最簡單直接的樹形數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化復(fù)雜一點的數(shù)據(jù)結(jié)構(gòu)解析,基本上用“棧+DFS”就可以實現(xiàn),而做 DFS 時通常都圍繞樹型結(jié)構(gòu)進行遞歸求解。
所以這兩個數(shù)據(jù)結(jié)構(gòu)非常重要。面試頻率非常高,這里要敲一下重點,希望大家認真對待這部分。
(2)復(fù)雜度分析
復(fù)雜度分析是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的基礎(chǔ),也是核心。建議大家一定要先學(xué)會分析算法的復(fù)雜度,再去學(xué)習(xí)具體算法。
這部分內(nèi)容包括時間復(fù)雜度和空間復(fù)雜度分析,其中每一種復(fù)雜度都有最好、最壞及均攤復(fù)雜度。而一般我們使用最壞復(fù)雜度比較多。
另外,分析復(fù)雜度除了分析迭代,也要會分析遞歸,遞歸棧的空間開銷經(jīng)常被大家所忽略,這點值得引起大家的注意。

算法思想(80%考點)
對于算法思想,需要大家在掌握了上面內(nèi)容基礎(chǔ)上進一步學(xué)習(xí)。
這里列舉了五個考點,它們分別是:
? 搜索(BFS、DFS、回溯、二分等);
? 暴力優(yōu)化(雙指針、單調(diào)棧、前綴和等);
? 動態(tài)規(guī)劃;
? 分治;
? 貪心。

以上內(nèi)容覆蓋了算法面試80%的考點。一些比較“冷門”的知識比如二分圖、跳表、蓄水池抽樣算法等考察的頻率很低,就沒有列出來。
希望大家集中精力將重心投入這 80% 考點中。其他知識點大家可以根據(jù)自己的情況學(xué)習(xí)。

如何科學(xué)高效地準備算法面試
科學(xué)的學(xué)習(xí)路線和良好的刷題技巧是最重要的兩個因素。
有一個科學(xué)的學(xué)習(xí)路線就不會迷茫,也不至于發(fā)生由于學(xué)習(xí)順序不當(dāng)導(dǎo)致自信心被打擊的情況。有良好的刷題技巧就不至于反復(fù)踩坑,刷了又忘,忘了又刷,以至于最后什么都沒有學(xué)到。
《算法通關(guān)之路》這本書就很好地解決了以上兩個問題。

它不僅提供了完整的學(xué)習(xí)路線,內(nèi)容覆蓋面試的大部分考點。還濃縮了作者刷了數(shù)千道題目總結(jié)出來的核心知識點以及刷題技巧,幫助大家在有限的時間內(nèi)搞定算法面試。
《算法通關(guān)之路》一書的最后一章就是專門討論刷題技巧的,比如如何根據(jù)數(shù)據(jù)規(guī)模反推算法復(fù)雜度,以及數(shù)據(jù)預(yù)處理等,都是非常實用的刷題技巧。
這本書由多位作者編寫。他們大多來自名校,在算法比賽中都有不錯的成績。另外還特別善于寫題解,傳達自己的思想。整理的算法題解和算法思想放到了 GitHub 進行開源,累計獲取 4 萬多 star,幫助了無數(shù)的程序員獲得滿意的 Offer。

相比于其他同類圖書, 這本書有三個特點:
01. 題目范圍廣泛,基本上覆蓋了大部分的常見題型。題目全部來源于力扣的高頻經(jīng)典題,值得大家投入經(jīng)歷學(xué)習(xí)。
02. 題目之間不是孤立的,而是有一定的相關(guān)性和難度梯度。旨在通過若干關(guān)聯(lián)題目的講解,讓讀者深入理解題目背后的邏輯,做到即使遇到新的題目也可以游刃有余。
03. 大多數(shù)題目的講解非常詳細,而不是一筆帶過,除此之外,還配有大量圖片,非常適合新手學(xué)習(xí)。

五折專享優(yōu)惠
快快掃碼搶購吧
如果喜歡本文 歡迎 在看丨留言丨分享至朋友圈 三連 熱文推薦
▼點擊閱讀原文,查看本書詳情~
