百度網(wǎng)頁搜索

原文鏈接:

百度面試-網(wǎng)頁搜索部

一面:面試官很清瘦拒担,個頭很高兴喂。后來發(fā)現(xiàn)人很nice,很隨和~,至少面試過程中讓人感覺很舒服。一些我回答出來的問題可能記憶的不是很清楚了嘱腥,主要記錄一些我答的不是很好的問題耕渴。首先自我介紹,不過剛剛開始就被打斷開始進(jìn)行詢問了齿兔,從課程至項目橱脸,聊了很多,面試官在百度的職位or他隸屬于的部門屬于百度的框架開發(fā)類職位分苇,及相對于策略類的一個職位添诉。無論我的課程或者經(jīng)歷其實對于框架開發(fā)類職位比較不足,比較偏策略一些医寿。不過繼續(xù)面試嘛栏赴,我興趣廣泛,針對這個也很感興趣的~

1.linux多線程編程的知識靖秩,這個答的不是很好须眷,因為自己確實基本沒寫過多線程的知識竖瘾,只是并行程序設(shè)計利用MPI實現(xiàn)過簡單的算法,概念知識不是很了解花颗,所以針對linux多線程編程知識還需要補(bǔ)充一下捕传。當(dāng)時一個問題就是鎖的類型?

2.linux中文件描述符FD的概念扩劝?當(dāng)時想不到是什么庸论,然后面試官提示了一下,0,1,2棒呛,就想到了命令行中經(jīng)常用到1,2就答了一下才了解到平時用到的這些就是文件描述符聂示,自己卻不知道概念。

標(biāo)準(zhǔn)輸入(standard input)的文件描述符是 0条霜,標(biāo)準(zhǔn)輸出(standard output)是 1催什,標(biāo)準(zhǔn)錯誤(standard error)是 2。

3.因為是搜索公司宰睡,所以面試官讓我描述一下整個搜索引擎的過程蒲凶,包括用戶提交query之后的一系列工作,這部分概念缺失很多拆内,答的很差旋圆。準(zhǔn)備面試一家搜索公司,而且在搜索公司實習(xí)過一段時間麸恍,竟然無法完整答出這個問題灵巧,其實挺糟的。

這個搜索一下比較好的架構(gòu)~最好針對已經(jīng)有的開源項目分析其框架最好抹沪。針對我可能分析一下Nutch和Solr比較好刻肄。

4.針對數(shù)組A和數(shù)組B,兩個數(shù)組的元素內(nèi)容相同融欧,不過數(shù)組A是已經(jīng)排序的敏弃,數(shù)組B是亂序的,針對數(shù)組的中位數(shù)噪馏,存在以下兩組程序麦到,比較其效率并分析原因。

程序見原鏈接

這個題目之前在網(wǎng)上瀏覽到過欠肾,知道有序的數(shù)組的效率其實比無序的要高很多瓶颠,但是原因?qū)嵲谙氩怀鰜怼,F(xiàn)在搜一下刺桃,原來是stackoverflow上面的經(jīng)典問答呢粹淋,原因不是編譯器動手腳,而是CPU動的手腳,CPU有一個叫分支預(yù)測的技術(shù)廓啊,是這個技術(shù)導(dǎo)致有序數(shù)組的效率很高欢搜。 CPU指令執(zhí)行的過程是流水線,簡單的分支預(yù)測方案是針對當(dāng)前元素判斷下一個元素的指令跳轉(zhuǎn)方向谴轮,有序的話分支預(yù)測的準(zhǔn)確率很高炒瘟,無序的話分支預(yù)測技術(shù)就不生效了,無法提前裝載指令進(jìn)入流水線第步,這樣就損耗了一定的CPU時間疮装。

5.虛擬析構(gòu)函數(shù)的應(yīng)用場景。

當(dāng)時答的是指向父類的指針實際指的子類對象粘都,delete的時候需要調(diào)用子類析構(gòu)函數(shù)廓推!這是唯一應(yīng)用場景!當(dāng)時多嘴答了一下引用也可翩隧。其實引用必須顯示創(chuàng)建對象樊展,這樣編譯器就會自動調(diào)用其析構(gòu)函數(shù),所以不屬于這一應(yīng)用場景堆生,即使指針和引用均可完成多態(tài)专缠。

實驗實例:見原鏈接

6.STL中l(wèi)ist的底層實現(xiàn)?雙鏈表淑仆,因為可以前進(jìn)后退涝婉。STL中的deque的默認(rèn)使用容器?其實當(dāng)時不太確定蔗怠,思考了一下墩弯,猜了一下vector,因為很多容器默認(rèn)容器均使用vector寞射。當(dāng)時如果問我deque的底層實現(xiàn)就好了渔工,這個我更加了解-_-。

7.vector的insert和erase操作桥温,這個也不是很熟悉引矩,但是屬于連續(xù)空間的插入和刪除,必須做內(nèi)存的調(diào)整~策治,翻看一下STL源碼具體的實現(xiàn)脓魏。

8.兩個簡單的算法題目兰吟,時間比較急通惫,代碼寫的比較冗余。

a.一個數(shù)組中只有一個數(shù)字出現(xiàn)1次混蔼,其他數(shù)字出現(xiàn)兩次履腋。

挺簡單的題目,因為見過,所以就跳過了這個題目遵湖,所以元素異或即可悔政。

b.一個m*n得棋盤,每個格子中有一個數(shù)字延旧,計算從左上角至右下角的最大路徑和谋国,每一步行只能夠向右或者向下行走。

一個簡單的動態(tài)規(guī)劃題目迁沫,第一種方法首先時間復(fù)雜度O(mn)空間復(fù)雜度O(mn)的寫了代碼芦瘾,代碼有些長,后來改進(jìn)了一個時間復(fù)雜度O(mn)空間復(fù)雜度O(min(m,n))的算法集畅,后來面試官問如果需要還原路徑如何做近弟?采用O(mn)的額外空間記錄每個單元走的路徑即可。

面試總結(jié):算法題目其實挺簡單的挺智,只不過很多基礎(chǔ)知識不夠牢固祷愉,比如linux的一些基礎(chǔ)知識(復(fù)習(xí)下《鳥哥linux私房菜》),多線程的編程知識(學(xué)習(xí)下《posix多線程程序設(shè)計》并簡單實踐一下)赦颇,STL的知識和C++的知識也仍然需要鞏固復(fù)習(xí)(STL源碼剖析二鳄,Effective C++,More Effective C++沐扳,深度探索C++對象模型一本書內(nèi)容還是挺晦澀的泥从,還是要拜讀一下,面試的時候雖然可能不涉及這么深入的知識沪摄,但是還是要繼續(xù)學(xué)習(xí))躯嫉,另外就是盡可能的逛一些技術(shù)社區(qū),看一些東西了杨拐。因為像有序祈餐,無序數(shù)組那個題目,感覺完全是技術(shù)視野的問題哄陶,看到了就會帆阳,沒看到怎么能夠想到是CPU的優(yōu)化,我都以為是編譯器的優(yōu)化屋吨,答題方向都掌握錯了蜒谤。

二面:二面的面試官相對于一面的面試官不是那么的健談,更多的是讓我去說至扰,他去加一些提醒鳍徽,然后我繼續(xù)的回答。不過面試官也很nice敢课,因為答題的過程當(dāng)中給了我很多的引導(dǎo)阶祭,因為題目我答的都不是很完善T_T!

1.首先是問一個大數(shù)據(jù)處理的題目绷杜,兩個URL文件,分別有20億條記錄濒募,每個URL的項目大約1KB鞭盟。文件中有重復(fù)的URL記錄,如何去除重復(fù)瑰剃?

因為在一面的過程中了解到齿诉,有序的數(shù)組去除重復(fù)的時候能夠得到快速的去重,所以就考慮到了首先排序晌姚,但是兩個這么大的文件單機(jī)排序鹃两?外部排序,k路歸并排序舀凛,然后面試官就順勢的問了我k路歸并排序的知識俊扳,k路歸并排序的時間估計,因為k路歸并排序很多時間在磁盤的IO上面猛遍,所以我猜測可能磁盤的IO才是時間的平靜馋记,每個元素最終進(jìn)出磁盤4次,所以我估計的方法是元素數(shù)量*4*磁盤IO平均時間懊烤。不知道這個方法對不對梯醒。

多機(jī)的擴(kuò)展,MapReduce程序應(yīng)該可以完成腌紧,但是我對hadoop不是很了解(所以這個方法沒有答)茸习。自己想一下多機(jī)的擴(kuò)展吧,當(dāng)然也是分治壁肋,想想也可以多機(jī)k路歸并排序号胚,后來面試官引導(dǎo)我說可以不排序么?我才意識到原始問題只是為了去除重復(fù)浸遗,所以這里分治并且利用hash的方法應(yīng)該能夠達(dá)到很快速的算法(復(fù)習(xí)一下《大型網(wǎng)站架構(gòu)》這本書)一致性simhash方法應(yīng)該是解決這個問題的猫胁。

2.設(shè)計模式,單例設(shè)計模式的深入討論跛锌。(復(fù)習(xí)《head first》設(shè)計模式)

a.單例設(shè)計模式的應(yīng)用場景弃秆?

b.單例模式的代碼(白紙代碼)?

c.多線程安全的單例模式代碼(需要加鎖)髓帽?

d.如何實現(xiàn)一個高效的線程安全的單例模式代碼菠赚?(存在不加鎖的解決方案嗎?)

3.簡單的聊了項目之后就問了一個算法題目郑藏。中國象棋中帥衡查,將和一個將身邊的士,輸出其合理位置的方案译秦。

剛看到這個算法題目的時候還卡了一下峡捡,不過后來自己把棋盤編號為1,2,3,4,5,6,7,8,9之后豁然開朗~不過我的代碼if,else比較多筑悴,3類情況枚舉们拙,后來在面試官的提示下進(jìn)行條件合并,節(jié)省了很多的代碼阁吝。

程序見原鏈接

面試總結(jié):對于系統(tǒng)設(shè)計海量數(shù)據(jù)的題目還是要準(zhǔn)備的砚婆,還是需要復(fù)習(xí)《大型網(wǎng)站架構(gòu)》一書,書中講述了很多海量數(shù)據(jù)處理的知識突勇。學(xué)習(xí)下july的博客装盯,了解一些常用的方法。另外就是設(shè)計模式中單例模式的掌握一定要非常的熟悉甲馋,不要讓面試官不斷的提醒修正錯誤埂奈,這樣會引出更多的問題,我這次面試就是定躏,雖然及時的修正問題账磺,但是都能夠引出其他的問題,比如講一下線程和進(jìn)程痊远?雖然這個問題比較普通垮抗,但是這種引出其他問題還是盡量避免。

三面:這一面真是等了一個下午碧聪,12:30-4:20這個過程真是等待的很漫長冒版,腦袋都秀逗了,面試官下午來了之后感覺就是聊天了逞姿,也沒有針對我問一些技術(shù)問題辞嗡,主要問了實習(xí)的一些工作,簡單的聊了半個小時就結(jié)束了滞造,也沒有說后續(xù)的消息欲间。不知道是不是還有后續(xù),反正面試官還是很詳細(xì)的描述了一下百度的情況断部,也很認(rèn)真的解答了我問的幾個關(guān)于百度的問題猎贴。當(dāng)時也不好意思去問后續(xù)消息,就回來了蝴光。T_T她渴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蔑祟,隨后出現(xiàn)的幾起案子趁耗,更是在濱河造成了極大的恐慌,老刑警劉巖疆虚,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苛败,死亡現(xiàn)場離奇詭異满葛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)罢屈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門嘀韧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缠捌,你說我怎么就攤上這事锄贷。” “怎么了曼月?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵谊却,是天一觀的道長。 經(jīng)常有香客問我哑芹,道長炎辨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任聪姿,我火速辦了婚禮蹦魔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咳燕。我一直安慰自己勿决,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布招盲。 她就那樣靜靜地躺著低缩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪曹货。 梳的紋絲不亂的頭發(fā)上咆繁,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機(jī)與錄音顶籽,去河邊找鬼玩般。 笑死,一個胖子當(dāng)著我的面吹牛礼饱,可吹牛的內(nèi)容都是我干的坏为。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼镊绪,長吁一口氣:“原來是場噩夢啊……” “哼匀伏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蝴韭,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤够颠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后榄鉴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體履磨,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蛉抓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了剃诅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巷送。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖综苔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情位岔,我是刑警寧澤如筛,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站抒抬,受9級特大地震影響杨刨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜擦剑,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一妖胀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惠勒,春花似錦赚抡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至售担,卻和暖如春赁遗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背族铆。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工岩四, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哥攘。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓剖煌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逝淹。 傳聞我的和親對象是個殘疾皇子末捣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容