1. 程式人生 > >2015美團演算法工程師筆試、面試之旅

2015美團演算法工程師筆試、面試之旅

         9月16日下午進行了美團筆試,8個大題+若干附加題(其它崗位選做),筆試題就不多說了,基本都是小演算法題,寫思想任何寫程式碼,相信網上都能搜到。90分鐘時間,我做了6題,時間實在是來不及,做完感覺進面試應該沒問題。

        當天晚上,由於實驗室任務,在實驗室奮戰到凌晨兩點(已經9月17日了)才回宿舍。而美團的面試通知電話居然是1點30打來的。。。當時看到北京的號碼都以為肯定誰打錯了,一接居然是美團電話,然後電話那頭是工作人員繁忙的嘈雜聲,通知我於9月17日下午3點到南大仙林校區面試。我第一反應是怎麼這晚了還打電話,這讓人活麼。。。這麼遠的地方。。。於是我問還有其它面試地點麼,答案是沒有,於是只能答應。由於之前阿里的offer,使我一直猶豫要不要去。上午時間想了想決定還是要去,目的很簡單,就是去看看自己演算法水平如何。雖說本人從未參加過ACM,OJ只做過很少題目,但是本人感覺自己思維還是比較靈活的,就想去得到個肯定。

        吃過午飯之後,長途跋涉來到南大仙林校區,有老同學接待了我下,送我到達面試地點,見到老同學感覺又回到了高中時候,還是很開心的。調侃了幾句就去面試簽到了,進入了面試等待區。轉了一圈,發現美團專業HR貌似很少,面試官不是很多,等待面試人不是很多,大約在20人左右。等到3點左右,我被叫去面試,開始了頭腦大風暴。。。

(1)一面:技術面

        自我介紹——簡歷專案簡要介紹——演算法題——C++題——概率題。

        自我介紹完,讓我介紹簡歷專案,已經不知道說過多少遍了,隨便扯扯,面試官也沒啥興趣,就說來做題吧。給了一個演算法題:一個數組先遞增後遞減,要求找到最大值。想了會告訴了他的思想,然後他說把程式碼寫出來,然後就開始寫了,寫完面試官逐句看了下,我也給他解釋了下。主要是用二分思想,時間複雜度為O(lgn)。不過面試官還不滿意,說到你這最低複雜度也是O(lgn),能不能把最低降到O(1)。我想了下和他講了下思路,他說好吧。之後略尷尬,為我Java會麼,我說剛學1,2個月,不熟悉。。。問我Linux知道麼,我說沒用過。。。問我學過UNIX程式設計麼,我說沒有。。。知道設計模式嗎,我說沒接觸過。。。知道web開發技術麼,我說了解一些名詞,沒用過。。。面試官無奈了,說那考下C++吧,於是問了我C++的多型實現並舉例子(程式碼),static變數作用,堆疊區別等問題。這些還是比較瞭解的。最後問了個概率題:2個容器,第一個容器4個紅球和5個白球,第二個容器3個紅球和8個白球,隨機取出一個球,已知是紅球那麼它是來自於第一個容器的概率是多少?告訴他是4/7,並且條件概率的計算原理。然後問我概率是不是比較好,我說是很好。。。(哈哈,隨便扯扯嘛)。這樣就過了一面。

        (2)二面:技術面

        專案相關演算法題——演算法題1——演算法題2——智力題。

        因為專案是推薦演算法,涉及邏輯迴歸,問了我邏輯迴歸函式及其意義,都答得不錯,然後又問我邏輯迴歸目標函式,我愣了,寫了個最小二乘。。。然後面試官說不對,既然你對最小二乘比較熟悉,那寫下線性迴歸時最小二乘能推匯出什麼。。。我又愣了,心想完了,想了一會直接說不會。面試官人很好,安慰我說沒事,考考你數學基礎而已。接下來是演算法題1:有兩個陣列X1[n],X2[n]。X1是已知的,X2需要計算。定義常數r,X2[i] = X1[i]的前r個元素和後r個元素共2r+1個元素的均值;對於前r個和後r個,由於缺少資料,就有多少個算多少個的均值。先講思想,再寫程式碼。演算法題2:筆試時候沒做的一題,已知陣列如X=[1,2,3,4],輸出其所有子集,如1,2,3,4,12,23,34,123,234,1234...給了提示,做出來之後。又來了智力邏輯題:3*3的九宮格,填寫1—9,使得所有行、列、對角線的和都是相等的,那麼中間那個方格數字是什麼?要求給出理論證明,不要告訴我感覺。。。然後思考許久給出結果。這樣二面就過了。

        (3)三面:HR面

         智力題——專案介紹——各種HR問題。

         開始就是智力題:7*7的方格,總左下角走到右上角,最短路徑前提下一共有多少種不同路徑。。。我一聽感覺很熟悉,給出了答案,結果面試官沒反應,就知道是錯了,接下來想了20分鐘,還是不會。。。實在是之前用腦過度,腦容量完全跟不上啊。。。最後說不會,求跳過。。。然後介紹專案,面試官興趣不大。。。然後回答各種HR題。3面就這樣結束了。。。

         面完之後簡直就是解脫,腦子實在是費力。。。之前感覺自己研發方向很虛,程式碼能力很弱,於是打算進軍阿里資料分析領域。。。今天面試,讓我找到了些自信,程式碼能力的自信,還是比較開心的,最後一個題目沒有答出來還是比較遺憾。不過還是很不錯的體驗,收穫比較大。

          最後不得不說的重點:美團是我見過最特別的公司。首先凌晨一點通知面試已經很奇葩了,其次,基本沒有HR感到難以理解,但是這些都沒給我任何負面印象,反而讓我感覺這個公司的拼搏勁。通過面試的觀察,我更加肯定了這一點。每個面試官看第一眼就知道各個都是典型的技術宅男、技術大神,很文靜、忠厚、和藹、技術細膩。。。我們的筆試題他們都認真看過,即使你的一個小邊界錯誤都能發現給你指正,他們在面試時候在簡歷上做各種筆記,記錄你的所有有價值資訊,當然還有專門的評價意見填寫。整個面完之後,我的簡歷上到處都是紅字,都是他們的記錄。。。在面試時候,面試官總能給一些恰到好處的提示,感覺他們也為我們能解答出來感到開心。他們是在用心面試我們,我敬佩他們!

靜靜地等待通知吧!