2014年3月到6月找實習找了一堆,稍微總結下,本身備用以及分享給各位做爲經驗教訓面試
簡歷總共投了百度,騰訊,阿里,盛大,百姓網,微軟,deNa這7家算法
結果:sql
百度,盛大:簡歷偷完後石沉大海數據庫
騰訊:筆試掛了編程
DeNa:筆試掛了後端
阿里:算法工程師offer數據結構
百姓網:後端開發offerdom
微軟:軟件開發工程師offer測試
筆試狀況:優化
騰訊:題目基本上是那種你會你秒答,你不會也不必思考,選擇題蒙個答案走人,不是選擇題,想好了寫滿就好了,解答題一道關於雲計算mapreduce,一道關於數據庫的,1h30min的題目我30min作完就交了,不過最後掛了,企鵝真打臉T_T
阿里:相比騰訊,考察記憶類的題目要少些,考察實際運用的比較多,好比有兩道估算題,一道是二分求快速冪,而後考察了一些細節,解答題依然有相似智力題的任務調度問題,兩道大題,一道是二分讓你找錯誤,是編程之美上的原問題,一個是要注意那個代碼有可能陷入死循環,另一個是要注意有可能mid = (l + r) >> 1這種寫法有可能l+r會越界,須要改寫成mid = l + (r-l)>>1,還有一道關於跳躍表的題目,跳躍表我考察看阿里以前幾年題目的時候看到有道選擇題考了這個數據結構,就考前把這個弄通了,各位以爲跳躍表是一種基於隨機化思想的線段樹,當隨機因子p=1的時候能夠理解爲當數據足夠大時其具備和線段樹有等價的功效,這個數據結構的思想在於分層,而分層採用的機制是隨機向上,而後高層稀疏,底層密集,而最底層是全部數據都有,擁有均攤分析O(lgN)的效率
DeNa: 筆試題巨水,這個是來咱們學校宣講會後直接開始的筆試,基礎題較多,代碼題1道閱讀程序寫結果,1道代碼補全,代碼補全是經典的八皇后問題,不是m67的那個位運算方法,就是簡單的暴力搜索,而後綜合題,一道是用鏈表的結構來大體解釋貪吃蛇的實現以及實習表達式求值,這個最後基本確認不是我作的成績很差,而是其實這一次這邊根本不招技術類,非技術的題目就不談了
百姓網:宣講會後直接筆試,30min四道題目,第一道是設計一種算法求不規則圖形面積,我是用蒙特卡羅算法來作的,其餘高深的計算幾何方法感受不像是第一題的級別;第二題相似fbi的遞推題(背景都同樣,羊第一年怎麼樣,第二年怎麼樣,。。。而後好像第6年仍是第5年死掉),不過我的感受遞推式很差拿,仍是用迭代求比較方便;第三題問你for循環有哪些用途,這是我最很差答的問題,亂寫寫應付下就好了;第四題求m~n的乘積末尾0的個數,求2,5的因子數,取一個較小值便可;咱們這邊這場我彷佛筆試仍是最高分,真是運氣
微軟:第一題字符串模擬題,第二題組合數學題,第三題求逆序對,第四題很煩的模擬題,具體題目能夠到微軟hicode上找,第四題聽說亂作還能拿很多,但我當時時間很少直接放了,12都滿分,第三道輸入數據有非法的,沒有處理乾淨,最後270
面試:
首先全部的面試都讓你自我介紹下,而且挑選你最成功的project來介紹下(最成功不談,最好講的)
百姓網:1.素數方面的一些問題,還寫了個判斷素數的代碼
2.篩法求素數以及優化
3.推薦算法的設計(推薦好友,大規模數據下)
4.一個奇葩問題:超市裏籃子放到電梯上爲何不會滑下去(到如今都不知道,問他也不說,而後跟其餘同窗討論跟個人想法相似,就是下面有個鉤子勾住凹槽)
(12是一面裏的,34二面,其餘一些聊天省略)
阿里:研發一面:上來面試官有點事,先打發我寫一個快排(T_T),而後問了關於測試的問題,這個後來軟工考試卻是考到了,而後問了C#,JAVA這些面嚮對象語言的一些特性,還問我有沒有接觸過COM(也是後來軟工講過的),一些基本的數據結構問題,妙答的題目。
算法一面:貝葉斯分類器原理以及幾道機率論方面的題目,原本要作題的,臨時變成了問我序是什麼意思
算法二面:扯我本身作過的一些東西而後扯到的一個方面,是關於如何作一個比較不錯的nba預測模型(我作過世萌的預測模型,但這個跟面試官講不太合適,主要他很差理解)
微軟:首先微軟比較直接,基本就是算法題,閒聊比較少,而後完整代碼要求寫到白板上,另外微軟幾乎你每一個代碼寫完,一可能會讓你優化,二通常都要求你設計測試數據來測試你的代碼。
一面:一個組裏三我的輪流問了下
1.一道二叉樹的題目,個人方法能夠解決,但好像跟他的標準答案不一樣,跟他解釋了好久,而後讓我寫了個四捨五入爲核心功能塊的代碼
2.首先一道sql語句的題目,而後問了思路主要,畢竟我早忘了sql,而後是一道找規律的題目,最後發現其實就是一種特殊的四捨五入算法,而後讓我寫了下,寫完寫測試數據。
3.這是惟一一個讓我英文自我介紹和問問題的,直接有點蒙了,而後題目就一道,複製一個有兩個指針域,一個next,一個random(隨機指向任意節點的域),而後讓你複製一條鏈表,我最後優化完是用了hash,空間比較大,時間就是O(N),但真正的方法是映射後跳兩次,而後拆掉映射邊。
一面估計掛了後推到其餘組的電話面試:主要討論了我本身的project,而後由此拓展問了不少問題,估計看我臨場反應以及知識的寬度吧。