百度實習面試總結——百度大搜,機器學習實習生


百度實習面試總結——百度大搜,機器學習實習生

簡歷是內推的,找到了川大的一位學姐,然后內推了簡歷。

過了幾天,HR的電話打過來協商面試時間。一開始說的是下午兩點,我想了想,好像有一節選修課,於是想調整再晚一點,於是調到了四點,不過這時間不還是在上課嗎……

於是果斷上課上到一半,然后翹了出來,溜回寢室。在室友玩守望先鋒的背景音樂下,進行了一面(微笑臉

一面

其實這時候,我並不知道我面的是什么崗位的……

一面和小米一樣,都是在一個代碼分享平台上面寫,就是面試官看得見你寫的代碼,你也看得見面試官寫的是啥。

先讓我自我介紹,然后我blablabla。

然后進入正題:

第一題:給你n個數,要求找到所有的三元集<i,j,k>,滿足a[i]+a[j]+a[k]=S,要求復雜度n^2

我做這道題的時候,一開始給了一堆亂七八糟的方法。(FFT什么的其實都想說出來,但是忍住了……

然后面試官提示了一下兩個數的情況,發現好像可以直接O(n)的Two pointers就好了。

然后我腦補了一下,於是給了個和two pointers毫無關系的n^2方法(暴力枚舉+hash)……

然后在面試官的提示下,做出了n^2的two pointers。

這時候感覺好像要go die了……

第二題:給25匹馬,你有五個賽道,問你最少需要比賽多少場,才能得到前三的馬。

我一開始沒啥想法,於是答了個上限,(25-3)/2=11場,因為每場比賽可以淘汰兩只馬。

然后面試官提示了一下楊氏矩陣,然后看我好像還是不太懂的樣子,就給我講了正解:

你建一個5*5矩陣,每一行,從左到右,從大到小排序。第一列,從大到小排序。

那么說構成我要求的這個矩陣,就需要6次比賽。

然后就可以淘汰掉第四列和第五列,第四行和第五行。

第一排只會剩下3匹馬,第二排只會剩下2匹馬,第三排只會剩下1匹馬。

由於第一行第一列的馬兒必須選,所以剩下五匹馬比賽選出前二就完了。

所以最少比賽七次。

這時候,感覺自己已經go die了。

第三題:給你一堆二維點,讓你找到一個點,使得其他點到這個點的距離和最小。

這道題我終於會了,於是在面試官說完之前 ,就完成了搶答。

這道題是某年的校賽初賽題,把X軸和Y軸分開之后,分別取中點就完了。

第四題:

問:如何檢測兩篇新聞是一樣的呀?

答:把新聞拿出來字符串匹配就好了嘛。

問:但是其中可能存在個別字符不一樣,其他的都一樣的情況怎么辦呀?

答:那就把新聞拆分成句子,摳下來,然后進行匹配吧。

問:有些句子,實際上是代表着這個網站的特征的句子,如何把這些句子分辯出來呢?

答:翻一下之前這個網站的新聞,機器學習一下,看看那些句子出現的頻次高。

問:哦,你會機器學習嗎?

答:了解過,我知道K近鄰。

問:解釋一下。

答:KNN就是把一些作為樣本,然后拿現在要檢測的和那些樣本做距離,取距離最小的那幾個,然后里面啥最多,那么檢測的這個就是啥。我之前做過那個數字識別,就是用這個搞的。

問:你說的好像不太清楚,我忘了,我回去查一查。

GG。

然后一面就說,你准備一下,趕緊面對二面吧。

這時,我室友正在歡樂的在守望先鋒1600分魚塘掙扎中。

二面

開頭還是讓我自我介紹,然后我把一面的自我介紹重復了一遍(x

然后進入正題:

第一題:

問:給你一個前綴,再給你一堆字符串,問你有多少個字符串包括這個前綴。

答:hash。

問:假設要求動態的多次詢問是否存在這個前綴呢?

答:把所有的字符串拿去建字典樹,然后每次有前綴的時候,爬一爬就好了。

問:如果不是前綴呢,是問你是否存在這個子串呢?

答:hash?

問:這個好像不太行呀,你可以有充分的預處理時間哦?

答:那就把所有的字符串摳出來,比如把abc變成abc,bc,c三個字符串,然后做字典樹?

問:好像可以?

答:恩,好像可以。

第二題:給你一個矩陣,從左導右是遞增的,從上到下是遞增的,讓你找到里面是否存在一個k。

曾經曾某拿這道題考過我,然后我被他羞辱過,然后我就記住了這道題……

我誠實的答了我曾經做過這道題,然后證明了一下結論的正確性。

正解就是從右上角開始跑,如果k大於當前格子的數,就往下走,否則往左走,證明略。

第三題:

問:給你一個二叉樹,求從根開始的最長路徑。

答:好像dfs一下就好了?順便記錄一下路徑長度。

問:要求輸出路徑。

答:第二次再dfs一下,如果到葉子節點的時候,是最長的話,就輸出?

問:只用一次dfs。

答:好像不遍歷完整棵樹,是無法確定最長路的?我感覺得兩次呀。

問:你能不能開個數組記錄一下路徑,然后更新呢?

答:好像可以呀。

GG

第四題:

問:給你一個隨機數生成器,有p的概率輸出0,(1-p)的概率輸出1,p未知。要求用這個隨機生成器做成50%輸出0,50%輸出1的生成器。

答:我在紙上畫了畫,好像讓這個隨機數生成器一開始正常輸出,然后第二個周期1-rand()輸出,這樣就是一個平均的了。

問:你這個假設周期是1,那么輸出了兩個數,如果我只取第一個數,那么第一個數是否是50%概率輸出的呢?

答:好像從兩個數的角度來看,這兩個數輸出1的期望和輸出0的期望個數相同,我覺得好像是一樣的。如果只看第一個數的話,他就不是。我感覺這好像是個邏輯問題,我覺得我邏輯好像不太好……

問:我想讓你實現一個函數,然后這個函數的功能是50%概率輸出0和1,你再想一想。

摳了一下腦袋,然后想了10min……

答:輸出四個數做,01和10的概率不一樣,01+10不等於11+00。00和11都是p(1-p),01是pp 10是(1-p)(1-p),然后00x11=01x10,根據這一,我們可以乘法找對稱關系。一共十六對,都能找到。

問:我懂了你的意思,你這樣太麻煩了,假設你可以跳過一些東西呢?沒必要全部用。

答:那就11輸出1,00輸出0?01和10都跳過?

問:對。

然后面試官讓我准備三面了。

三面

讓我自我介紹一下,於是我又重復了一遍( x

你有什么優點?

blablabla

你有什么缺點?

blablabla

你知道我們干什么的嗎?

不知道。

你知道你要干什么嗎?

不知道。

那我給你講一下,我們是干blablabla……

而你會做blablablabla……

我覺得你這種一張白紙的競賽選手,還是比較適合這里的。

然后三面就結束了。

后續

然后我就以實習生的身份,混進百度之星出題組了。(x

我一定會好好出題的!大家記得去參加百度之星呀!

至於offer這邊,就杳無音訊了,我以為我被拒絕了,但是!

過了十幾天,三面面試官打電話給我說了下百度現在HC不足的問題,你要來就只能四月之后來。

而我正好有校賽要去打,本來就打算最早也只能四月份之后過去。

於是達成共識。

於是愉快的就決定了四月份再去思考這件事兒去了。

於是我又開始在學校躺屍,過着給小朋友教書的快樂日子。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM