提前面:
這個名字是我瞎起的,我也不知道叫啥,我一直以為這個面試就是一面,但是直到3月份我才知道這次面試只是大資料部想要了解一下我個人的基本情況和水平。面試時間大概是1月初,**來的很突然,毫無準備地面試了。
自我介紹一下。
你的簡歷上寫熟悉stl容器的使用,了解一些的內部實現,能說一下map內插入元素的兩種方式嗎,有什麼區別?兩種方式比較簡單,分別是方括號和insert,區別是方括號會覆蓋原key所對應的value,無論原來的key是否存在,但是insert當原key存在時是不能插入的。
對於map的內部實現你了解嗎?紅黑樹,但是具體的編碼不太會。
vector的內部是怎麼樣實現的?先動態申請一定的連續空間,如果空間不夠則繼續申請1.5倍的空間,然後將原空間內的資料拷貝過去。問:是在原空間基礎上擴張還是重新申請?答重新申請。
常用的linux系統命令都了解什麼?我舉了一堆例子,問:檢視程序使用了多少個檔案描述符的命令是什麼?答曰不知道。vim的命令了解多少?常用的都會。如何把一串字串都轉為大寫字母?答曰不知道。從本行複製到第x行?答曰xyy。
平時用c還是c++比較多?對於c和c++的區別怎麼看?答了物件導向和面向過程的區別,然後過載這個機制能說一下嗎,大概講了一下之後又讓我說了虛函式,後面說了一下虛函式的例子,這個我沒答上來,不得不說我物件導向的知識確實很匱乏,抽空需要補補了。
說一下三次握手和四次揮手的過程。
select、poll、epoll的區別是什麼?那時候還比較弱,只說了一下表面的比較淺顯的東西,然後問epoll的效率為什麼高,是怎麼實現的?這個問題沒有答上。
接下來是問專案,對於網路爬蟲的專案,能不能講一下整個的邏輯和實現。這個能說的就比較多了,把四大模組等東西都說了一遍,問題:現在很多**都有反爬的機制,比如同一ip不能短時間內訪問多次,如何繞開?我回答了可以偽裝ip,但是面試官告訴我這個是沒用的,我們改了資料報的ip後在聯通或者電信的出口其實ip還是分配給我們的ip位址,最後面試官告訴我這個問題的辦法有兩個,乙個是控制訪問頻率,另乙個是使用**ip。
演算法題:某餐館有n張桌子,每張桌子大小不一樣,有m批客人,每批客人有兩個引數:a人數,b預計消費金額。在不允許拼桌的情況下請設計乙個演算法選擇其中一部分客人,使得總消費金額最大。思路比較好想,將將客戶按照錢從大到小,其次人數從小到大排序,用multiset維護當前剩餘的桌子,然後二分找每一組客戶最適合的桌子即可。
提前面總結:除了資料庫,又發現了自己的乙個弱項——物件導向,對於物件導向的理解只能說是了解一些,一旦有些深入的問題就不知道了,而且對於很多知識的理解還不夠深,比如epoll、網路方面,只知道表面的應用,而不知其內部原理。
一面:演算法題:給乙個檔案,檔案的每一行有乙個int型的數,求所有數的第k大。又是經典的topk問題,我給出的演算法是用大頂堆,和之前面試的思路一樣,後來和學長討論時候他說可以用快排的思想來寫,找到乙個數的位置,看比這個數大的數的個數如果比k大就向多的方向找,反之向少的方向找。
演算法題:給定兩個日期,不使用任何庫求出中間有多少天。比較簡單,為了防止算錯,我直接求出兩個日期距離元年的天數然後相減。
一面總結:只有兩道題目,比較簡單,沒啥好說的。只是和我說下周一給我答覆,結果過了乙個多月都沒有音信,我還以為自己涼了。
二面:接到**的時候我是懵的,面試官和我說這個是二面,而我明明已經經歷過兩次面試了。
const char*、char const*、char* const之間的區別?這個問題答的有點尷尬,作為剛給大一講完c語言基礎的我,對於const char*和char* const的區別還是比較熟悉,結果突然又出來乙個char const*,把我搞蒙了,答的有點亂,現在才知道char const*和const char*等價。
#define和typedef的區別。
物件導向的乙個問題,具體我不太記得了,總之我沒答好。
大概講一下網路爬蟲的專案,這個可以說的比較多。
問了乙個沒聽過的linux命令,答曰不知道。
對於tail -f命令,就是動態顯示某檔案的最後十行,如果讓你寫這個命令,怎麼去寫?我的想法是用while(1)時刻監視這個檔案的最後修改時間,如果和上次的時間不一致,說明被修改,然後調整檔案指標到檔案末尾,用這個檔案指標和上次儲存的檔案指標相減,如果差值不為0說明有新增的內容,則將兩指標間的內容輸出。
說一下tcp的三次握手的過程?剛複習完tcp不久,我把整個tcp連線從開始到結束,還有其中包括的流量控制,定時器,滑動視窗等東西全說了一遍,大概講了20分鐘,也不知道這是不是答非所問,反正他沒叫停我我就一直說。
二面總結:
二面總體來說還行,不過面試過程中應該還有一些問題我不記得了,隱約記得有好幾個地方我沒回答上。
三面:深圳的**,和學長說的一樣,三面就是聊聊人生談談理想,一共也就二十分鐘吧,還和我解釋了一下為什麼面試週期這麼長,是因為對於每個實習生都想好好考察然後爭取能留下來。說乙個印象比較深刻的問題:在你們的比賽過程中,有哪一場你是作為乙個主力選手最終拿獎的?回答這個問題之前先向gs同學道個歉,雖然您帶我裝逼帶我飛,但是我還是沒有告訴面試官我的競賽經歷都是那根理工大粗腿帶著我這根小腿毛的事實。我的回答是:我們的隊伍比較穩定,這一年隊伍組成都是我們三個,所以每個人都有各自的分工,所以沒有誰是主力,只是我們的合作讓我們拿了這些獎項。
hr面:
正在和室友開黑吃雞,北京的**來了,死於決賽圈之外,不說了,都是淚。具體問題沒啥說的,印象較深的就是:哈爾濱還有一所工業大學,你能說說你們和哈爾濱工業大學比怎麼樣?我只想回覆乙個尷尬而又不失禮貌的微笑。
百度面試經歷
以前的文章,編輯分類觸發敏感被刪除到 站了,弄不回來了,改個標題再發表次。我是2011年應屆畢業碩士生,應聘的是商務搜尋的web開發工程師 27日下午回到天津趕到酒店,參加二面,今天還是技術面試,問了些簡歷中專案事情,問的很細,就不詳細描述了,如果是你自己做的東西並且深入思考過系統設計的話就都沒問題...
zf from byhh 百度完整的面試經歷
前言 筆試 1.關於深度優先 廣度優先遍歷演算法及非遞迴實現的特點 這道題我索性將深度優先和廣度優先便利演算法都寫出來,然後簡單說明了一下其非遞迴實現的特點,就是需要乙個堆疊或佇列,輔助空間較大等。2.一道程式改錯題,可能存在錯誤,也可能存在安全隱患。這道題一般對c c 熟悉的同學都會做,就是一些關...
百度實習生面試經歷
方法一 將25匹馬隨機劃分為5個組,分別進行比賽,每組取勝出的3馬 比賽5次 步驟 勝出3x5 15匹,15匹馬重複第乙個步驟,分為3組分別進行比賽,每組取勝出3匹 比賽3次 步驟 勝出3x3 9匹,9匹馬繼續分組,分為5匹 4匹兩組進行比賽,每組取勝出3匹 比賽2次 步驟 勝出3x2 6匹,6匹馬...