歷經一個月,四次面試,終於拿到了字節跳動的算法崗錄取意向書,在這裏記錄一下面試經歷。python
我的狀況面試
上海交通大學研究生,本科畢業於中國科學技術大學,目前專業是電子與通訊工程,主要研究方向是文本匹配(NLP)。面試中的自我介紹第一句hhh。算法
一面
3.8日被字節跳動HR的電話撈起來了,直接進入了秋招模式,在接下來的一個月裏,基本沒有投遞提早批,就專一參加了字節跳動的幾回面試。sql
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。 這幾場面試下來,感受算法真的是基礎吧,算法答不上來就比較危險了。其次要對本身的項目和論文有深刻的瞭解,對機器學習模型要有本身的理解,能夠跟具體業務場景結合。
這裏分享一下精心整理的Java面試資料,但願可以幫助到有須要的Java工程師朋友們,省的你們再去網上花時間找資料了!但願你們均可以收穫本身心儀的OFFER。
資料免費領取方式:轉發+轉發+轉發便可!!
Java電子書
(算法)重要!
操做系統LINUX
還有更多的Redis、MySQL、JVM、Kafka、微服務、Spring全家桶,架構視頻,Kafka、Mysql、Tomcat、Docker、Spring、MyBatis、Nginx、Netty、Dubbo、Redis、Netty、分佈式、性能調優、設計模式等等架構學習資料這裏就不一一列舉出來,有須要個人這些所有複習資料獲取!
架構視頻