字節跳動 算法全四面 詳細面經 已拿意向書!(轉載)

歷經一個月,四次面試,終於拿到了字節跳動的算法崗錄取意向書,在這裡記錄一下面試經歷。

個人情況

上海交通大學研究生,本科畢業於中國科學技術大學,目前專業是電子與通信工程,主要研究方向是文本匹配(NLP)。面試中的自我介紹第一句hhh。

一面

3.8日被字節跳動HR的電話撈起來了,直接進入了秋招模式,在接下來的一個月裡,基本沒有投遞提前批,就專注參加了字節跳動的幾次面試。

1. 一面前半段主要都是在講項目,面試官追問了一些項目細節的東西,以及做項目的心路歷程。

2. 然後就問了一道算法題,就是著名的 小兔的棋盤,我後來查了一下,是什麼卡特蘭數。然而面試的時候我沒聽說過這一道題,不過還是磕磕絆絆地用DFS解出來了,面試官說可以了,也沒讓我繼續用DP來解。哎,算法還是有點菜的。

二面

3.16進行了二面,二面感覺比一面嚴格了很多。

1. 二面一開始我講了論文的一些東西,然後面試官追問了非常多,有一些可能答得不太好,感覺對自己項目也好,論文也好,一定要對這個問題有自己深入的理解,不然容易被問住。

2. 二面也是問了一道算法題,是尋找迷宮中的最短路徑,迷宮中1表示有牆,路不通,0表示可以走。我腦子不知道怎麼抽了,直接想用DFS來解,給面試官講了一下思路。面試官提醒我,DFS和BFS你是怎麼考慮用哪個的。然後我就明白了,應該用BFS,講了一下BFS和DFS適用的場景。然後用BFS比較順利的寫出了程序。

三面

3.23進行了三面,三面問的非常多,持續了90min。不過感覺三面面試官很善於引導,所以總體還回答的不錯。

1. 一開始就問了一道算法題,LeetCode 76. Minimum Window Substring. Hard。當然,O(mn)複雜度的算法非常好想,我也是第一時間講了這個思路。面試官提醒我能不能再優化,我優化到了O(nlog(m)),就不知道怎麼再優化了,面試官說可以了。最後查了一下,這道題我做過,不過做的時候也是直接用的O(mn)的算法,O(n)對我來說,還是不太好想的。

2. 概率題:考慮五局三勝和三局兩勝的情況,哪種更公平之類的。這道題本身比較簡單,直接算概率就可以。不過我扯得挺多的,自己分析了 2k-1 局 k 勝的情況,以及無數局是什麼情況,結合了一下中心極限定理之類的。不過最後整個框架講的不是太好,沒有完整的圓回來。總體感覺這道題答得還可以。

3. 結合具體場景的題目:A文件有m個專有名詞,B文件有n個query,統計每個專有名詞出現的次數。回答這個問題,主要其實就是考慮複雜度和分佈式的知識,以及如何在query中查找專有名詞(本身比較簡單,考慮複雜度就不簡單了)。不過我對分佈式瞭解的不多,就只是自己手動分佈式了以下。

4. 結合實際問題問:如何判斷用戶查詢Query的意圖是否是視頻,以及如何搭建整套模型。Emmmm,這裡主要涉及到機器學習模型的構建,重點在於如何構造訓練數據,利用點擊率還是提醒了一下才想到的。對具體場景還是不太熟悉。還有考慮如何排序召回之類的事情,主要就是準確性和時效性的權衡。 5. CNN,RNN,Tansformer分別如何編碼文本,答得中規中矩吧。

6. python的動態數組是如何實現的,說實話我不太清楚。就扯了一下字典是怎麼實現的,然後借鑑字典的實現方式,自己臆想了一下動態數組是怎麼實現的,好像還大體是對的。編程語言基礎這一塊比較弱了。

7. 這一面問的挺多的,有些問題我都忘了。

四面

本來三面結束後,在焦急的等待結果,沒想到突然北京的HR通知四面,跟我說大家一般都是三面或者四面。

1. 講了項目,主要深入問了項目中如何構造例的情況,以及幾種不同的構造方式構造出來的要區別對待嗎?這個自己之前確實沒有認真想過,不過對項目比較熟悉,基本還是順暢的聊下去了。

2. 講了一下論文,也是深入問了一個細節,這裡就不展開了。

3. 實際問題:在用戶搜索場景中,如何在用戶搜索的時候根據用戶輸入的字推薦要搜索的query,以及如何把錯別字也正確推薦。主要是考慮輸入與候選集合的匹配,用戶畫像的構建,考慮用戶的歷史搜索信息。結合具體業務的問題感覺主要考察思維發散,回答的感覺還可以,結合了StarSpace等Embedding的方式。

4. 算法題:一個正整數數組,尋找連續區間使得和等於target,簡單的用兩個指針做出來了,不過讓我證明一下解法的正確性,糾結了一會兒也算是證明出來了。然後如果裡面有負數怎麼做,很順利的講出來了。

總結:

一面大約持續40min,感覺一面主要還是在問項目,算法就問了一道題,發揮一般。面完之後一度以為掛了,不過還好在第二天就接到了二面的電話,HR說一面面試官評價很好???

二面大約持續40min,感覺主要缺點還是在於對項目和論文的應用場景以及模型優缺點總結的不是很到位。二面後大概過了三天,等來了三面的電話。這時候還是挺緊張的,畢竟走到了最後一面,掛了就太划不來了。

三面總體這一面重點感覺在於如何在具體場景中選用合適的機器學習模型,如何構造訓練數據。跟具體場景結合的能力還是挺重要的。最後問了一下面試官我的表現如何,面試官說非常滿意。感覺穩了,然而沒想到。。。看第四面。

四面大致持續了40min,感覺三面和四面主要還是和具體業務場景結合的比較深入。 總結 四面後,又是焦慮的等待,還好過了四天,等到了錄取意向書,在上海的搜索團隊,就是不知道是不是SP。 這幾場面試下來,感覺算法真的是基礎吧,算法答不上來就比較危險了。其次要對自己的項目和論文有深入的瞭解,對機器學習模型要有自己的理解,可以跟具體業務場景結合。

作者:Myname

原文:https://www.cnblogs.com/yunxi520/p/12713388.html