準備演算法面試

2022-03-27 10:32:55 字數 1706 閱讀 5539

我決定寫篇短文,即為此文。之所以要寫這篇文章,緣於微博上常有朋友詢問,要畢業找工作了,如何備戰演算法。儘管在微博上簡單梳理過,如下圖所示:

但因字數限制,許多問題無法一次性說清楚,故特撰此文著重闡述下:程式設計師如何快速準備面試中的演算法,繼而推薦一些相關的書籍或資料。順便也供節後跳槽、3月春季招聘小高潮、及6月畢業找工作的朋友參考。

對於立志進一線網際網路公司,同時不滿足於一輩子幹純業務應用開發,希望在後端做點事情的同學來說,備戰面試中的演算法,分為五個步驟,如下:

1、掌握一門程式語言

首先你得確保你已掌握好一門程式語言:

掌握一門語言並不容易,不是翻完一兩本書即可了事,語言的細枝末節需要在平日不斷的程式設計練習中加以熟練。

2、過一遍微軟面試100題系列

我從2023年起開始整理微軟面試100題系列,見過的題目不可謂不多,但不管題目怎般變化,依然是那些常見的題型和考察點,當然,不考察任何知識點,純粹考察程式設計能力的題目也屢見不鮮。故不管千變萬化,始終不離兩點:①看你基本知識點的掌握情況;②程式設計基本功。

而當你看了一遍微軟面試100題之後(不要求做完,且這個系列的有些答案存在不少問題,看時注意),你自會意識到:資料結構和演算法在筆試面試中的重要性。

3、苦補資料結構基礎

如果學資料結構,可以看我們在大學裡學的任一本資料結構教材都行,包括鍊錶、陣列、字串、矩陣、樹、圖等等,如果你覺得實在不夠上檔次,那麼可以再看看《stl原始碼剖析》。

4、看演算法導論

《演算法導論》上的前大部分的章節都在闡述一些經典常用的資料結構和典型演算法(如二分查詢,快速排序、hash表),以及一些高階資料結構(諸如紅黑樹、b樹),如果你已經學完了一本資料結構教材,那麼建議你著重看貪心、動態規劃、圖論等內容,這3個議題每乙個議題都大有題目可出。同時,熟悉常用演算法的時間複雜度。

如果演算法導論看不懂,你可以參看本部落格。

5、刷leetcode或cc150或程式設計藝術系列

而不論是準備國內還是國外的海量資料處理面試題,此文必看:教你如何迅速秒殺掉:99%的海量資料處理面試題

此外,多看看優秀的開源**,如nginx或redis,多做幾個專案加以實踐之,盡早實習(在一線網際網路公司實習3個月可能勝過你自個黑燈瞎火摸爬滾打一年)。

當然,如果你是準備社招,且已經具備了上文所說的語言 & 資料結構 & 演算法基礎,可以直接跳到本第五步驟,開始刷leetcode或cc150或程式設計藝術系列。

《深入理解計算機系統》

w.richard stevens著的《tcp/ip詳解三卷》,《unix網路程式設計二卷》,《unix環境高階程式設計:第2版》,詳見此豆瓣頁面;

你如果要面機器學習一類的崗位,建議看看相關的演算法(如支援向量機通俗導論(理解svm的三層境界)),及老老實實補補數學基礎,包括微積分、線性代數、概率論與數理統計(除了教材,推薦一本《數理統計學簡史》)、矩陣論(推薦《矩陣分析與應用》)等..

綜上:上述全部過程短則半年,長則三年。

最後要強調的是:急功近利者必敗,越想快速越要循序漸進,踏實前進,若實在覺得演算法 & 程式設計太難,轉產品、運營、測試、運維、前端、設計都是不錯的選擇,因為雖然程式設計有趣,但不一定人人適合程式設計。

如何準備演算法面試?

主要介紹演算法面試的一些問題 以及如何準備演算法面試 演算法面試不僅僅是正確的回答問題 對於面試中遇到的大多數問題,都能有乙個合理的思考路徑 正確 本身是乙個相對概念 例子我們需要對一組資料進行排序 解決 快速排序演算法 o nlogn 向面試官提問 這組資料有什麼樣的特徵?向面試官提問 對排序有什...

ALS演算法 (面試準備)

als演算法描述 1 als演算法用來補全使用者評分矩陣。由於使用者評分矩陣比較稀疏,將使用者評分矩陣進行分解,變成v和u的乘積。通過求得v和u兩個小的矩陣來補全使用者評分矩陣。2 als演算法使用交替最小二乘法來進行求解。3 als分為顯示反饋和隱式反饋兩種。顯示反饋是指使用者有明確的評分。對於商...

面試準備 排序演算法

氣泡排序 從陣列中的第乙個元素開始到最後乙個元素,將相鄰兩個元素進行比較,若陣列左端的元素大於陣列有短的元素,則交換兩元素的位置,然後再對該陣列剩下的元素進行氣泡排序 氣泡排序 void bubblesort int arr,int length 選擇排序 首先在未排序陣列中找到最小的資料,將其放在...