職位類型:互聯網
面試地點:南京
招聘公司:美團網
馬上就要研究生畢業了,也沒想著再繼續讀書,所以最近也是一直在找工作,說一說最近我比較喜歡的一個公司的面經吧。也算給后面的同學一點參考。
筆試
早就聽聞美團的筆試全是大題(8個大題,2個小時),聽到這個感覺自己都不一定做得完,剛開始也木有多大的自信。不過還是和室友們廢了半條命趕到九龍湖去筆試。不過有點意外的是,我靠,8大題竟然做了7個大題。 晚上11:30的時候,手機響了,湖南的號碼,還以為是什么騷擾電話,接了電話就說了句“你誰啊,有事嗎?”。對方竟報出了我的名字,說是美團的約我第二天11點南大仙林xx中心面試。我當然喜出望外的答應了啊!
一面
上來我問“要自我介紹不?”。面試官一上來說不用了,先寫幾段代碼吧!然后,第一題:給你兩個字符串str1,str2,找出str2在str1中的位置。我一看題目心中暗喜,這個好做,好歹都寫過求兩個字符串的最長公共子串,求一個字符串的重復子串,求一個字符串的最長回文串。這個題比這幾個都簡單,小case,啪啦啪啦一下子寫好了。給面試官看,并給他介紹了下,第一題通過。
接著又問,“阿?!你還實習過啊,還搞的云計算啊。那你講講你實習吧”。有備而來啊,我就啪啦啪啦一邊講一邊畫,在紙上把cloudstack的架構和原理,說了一通。并且還把我實習時,寫過的shell腳本(cloudstack環境自動部署)拿出來給他看了下,還把其中用到的一個小的交互和他講了下。面試官說,教父級的啊!我說還好,我在虛機上測試過多次,可以正常運行。再把實習做的事和他說了下,這方面算是認可了。又問了關于項目的,這方面難不倒我,哥都準備好了,兵來將擋,水來土掩,講的清清楚楚。
緊接著又問了,計算機網絡懂不?我說懂點,那我問你啊,在瀏覽器里輸入美團網的URL,會經歷哪些過程和設備啊?心里又竊喜啊,這類題目在那兒見過的,啪啦啪啦,從DNS、代理服務器、路由器、負載均衡、服務器,各種UDP、TCP等等講了一通。他也很認同,輕松又創了一關。
然后,又問,操作系統懂不,我說懂點。那你說說進程和線程有什么區別啊,這個都是被面試官問爛了的問題,我還能不會嗎?劈里啪啦的講了一通。面試官點頭嗯嗯。又問,進程、線程間通信方式有哪些各有什么特點啊,這個又是被問爛了的題目,自然輕松過關啊,看我這么有激情地說,套接字常用在遠端進程通信,他突然打斷了我“那本地可以用不?”這個當然可以啊,一般服務器和客服端調試不都這樣嗎,我說,不過,這有點小材大用啊。面試官連忙點頭,嗯嗯!
“那,再給你出個問題哈”,我說“好的”。“你怎么統計南京市有多少輛出租車?”我靠,這個怎么整啊,我想都沒想就蹦出一句,“找交管部門查唄!”。他說,“不能查!”。這個我得想想了,剛開始還是從計算公路上的車的流量來算,后來想想車都是移動的,這怎么整呢?結果靈機一動,這不是再考我樣本估計總體的思想嗎?然后,我就告訴面試官,我有兩種方案,不過都是用樣本去估計總體的思想。一個是按人口和車輛的比,一個是按面積和車輛的比,最后有補充了點兒,各地方的人口密度和車輛密度是不同的,所以選幾個典型的樣本區統計,求平均去估計總體。減少誤差。這個思想也被認同了,好了,總算一面過了,和一面官的聊天還是挺哈皮的。結束時,他說,我這邊你過了,去休息室準備二面。
二面
上來就讓我介紹了項目,說到決策樹相關的,介紹完了,還說這是你想出來的啊?我說看到數據結構和算法里的,借鑒過來的。緊接著出了個題嗎,1000!末尾有多少個0,看了題目,有點暈啊,這怎么算呢,一點思路都木有。二面官人還蠻好的,一邊說題目,一邊說,你可以先算個10!,100!看看。頓時就有了思路,其實就是看因子里有2*5的個數,其實只需看因子5的個數就可以了,2的個數一般比5的個數多的,只需看5n%5==0,m=5n/5,算出5的倍數中因子5的個數就可以了。
接著出了一個三角矩陣的題目,每次只能向下和向右下走。剛開始還木有思路,最后竟然想到將矩陣轉換為二叉樹,對二叉樹進行先序遍歷。二面官說你還能想到這個啊。那你編程實現以下。我靠,這個還要建二叉樹啊,不是很好弄啊。面試官說,那你寫個二叉樹求和最大時的路徑吧。好吧,這又轉到劍指offer上了,劈里啪啦就寫好了。然后面試官看了下,不錯,二面就結束了,二面結束已經將近1點了,還沒吃午飯啊,又困又餓啊。下午3點還有騰訊的面試,這個可不想錯過啊,上去和HR說了下,HR人還蠻好的,直接把我的簡歷拿到最上面。
三面
三面那個囧啊,嘴里塞了一嘴面包,HR喊的時候,直接就去了,忘了帶水。見到三面官的時候,我還在嚼面包,想吐出來,又不知道往哪兒吐,想吞進去,又咽不下去,哎。。。那個囧態簡直難以忘記啊!三面官看到此態,笑了,說你是不是要喝點水啊。我馬上說是的啊,他向我指了一個地方,那兒有水。靠,救星啊,倒了兩杯水,給面試官也倒了一杯。一起拿過去先把水給面試官了。三面官說,你先喝點水,不急,我看看你簡歷和資料。
就這樣三面開始了,剛開始是閑扯啊,又講實習的項目,講了一半,他貌似看到以前面試的評語,說這個是不是以前說過的啊?我說,是的啊,他說,說過的就不用再說了。然后就讓我回憶你有哪些優點了,我先把本科的一個故事給他講了。然后他還在問,可能你平時沒注意,你再想想還有什么事能表現你的一些優點的。我想啊想,又把研究生的一個故事給他講了。然后還在問,還有不,你再想想。我就在想啊,這面試官真不錯啊,人太好了,一直在挖掘人的長處啊。我每講一個故事,他都在紙上做記錄,滿滿地寫了幾張紙啊!感動啊!
故事講完了,又問我,你一般在網上看技術文章不?我說看,他說在哪兒看啊。我說CSDN,博客園。他也在做記錄,然后問,那你有博客賬號不?我說有,他說,那你能給個鏈接不?我說,鏈接不記得了,那給個搜索關鍵詞吧,我就給了。我還以為3面就這樣聊聊就好了呢。沒想到,又出了兩道題,一個是寫個乘法的宏定義,果然是沒注意啊,要加3個括號#define multply(m,n) ((m)*(n)),這樣才對啊。哎。。。我只加了一個,在面試官的提示下,才想到加3個。確實覺得面試官人不錯啊,大美團確實不錯啊。又問了,宏定義和內聯函數有什么區別嗎,分別在什么樣的場景下應用啊。我答了內聯函數在編譯時,將調用處進行函數替換,避免調來調去壓榨出棧的時間開銷,以空間換時間,還有內聯函數有類型檢測,宏替換沒有類型檢測,內聯函數只是向編譯器申請,若內聯函數體內有循環遞歸等,申請會失敗,系統會當初普通函數處理。又問了如果設計一個string類,要注意什么問題。我答了,注意內存泄露啊。如果是繼承,基類的析構函數要設計成虛函數。拷貝構造函數和賦值函數要注意異常安全,還有不能拷貝指針。然后就是3面結束了,等通知。
總結:美團的面試官給我很好的印象,都是比較嚴謹,平易近人的那種。還有就是面試官多是以發現者的眼光去面試一個人,有很強的包容性,這一點,我很喜歡!