春假扭腰Bloomberg一遊

春假去了趟扭腰參觀了下Bloomberg,發現總部在Mahattan這種寸土寸金的地段還挺大的,裏面裝修也還不錯。最重要的是,放眼望去,男女比例還是不錯的,比一般的IT公司還是要均衡很多,至少給我面試的人裏面都是男女成對出現,雖然不知道這是不是湊巧而已。兩星期前剛好有2個同學來這面試,都是面了一輪就完了,於是我在面試的前一天還約了人喫中飯,結果我去的時候居然給我面了4輪,直接從早上10點弄到下午4點。

最坑爹的是,整個面試過程居然沒給時間喫中飯,面完三輪以後直接到了下午3點半,被告知還有第四面,於是被餓了好久的我隨便在公司找了點免費喫的,也就兩個巧克力棒+ 一根香蕉+兩杯果汁,準備喫第三個巧克力棒的時候感覺實在太膩了,喫不下去,於是對這個公司的好感也差不多都消失了。還有一點坑爹的是,公司給我訂的機票是下午3點半的,搞得我面完兩輪就慌着準備趕飛機去了,結果下樓的時候被HR電話叫了回來,說面試官在找我。那叫一個囧啊。。。只能後來跟面試官說擔心自己趕不上飛機,怕成了流浪的孩子,於是面試官哭笑不得的讓安排行程的人給我改了機票。

言歸正傳,說說面試吧。話說他家開發主要用的C++,所以建議大家寫code的時候最好用C++,以免產生誤會。感覺考的算法地方很少,偶爾會冒出個編程語言問題在中途問問。


第一輪:白女+印度男

先問簡歷,問我會什麼語言,然後問了點編程語言方面的問題,例如java和c++區別,malloc和new的區別什麼的。之後就跟面試官聊到了memory leak,在解釋有什麼方案的時候,我順便提及了下可以用smart pointer去處理,沒想到面試官直接說那你的第一個題目就來個實現smart pointer吧。

這個題目做得比較失敗,因爲自己只用過library,也沒想過怎麼實現。嘗試好幾次,不斷完善自己的class,但還是不斷被指出還有某某功能沒有實現出來,幾番努力之後還是沒有達到要求,至少性能要求沒達到。

第二題是關於excel題目,給出column的string值(例如ABC),要求對應的序號的值。挺簡單的,直接秒之。

第三題讓我反轉表示一個浮點數的字符串,也沒什麼難的,分成整數部分和小數部分分別處理就好了。


第二輪:白男+亞裔女

第一題是實現pow函數,非常基礎的題目。

第二題是給出一個規則:一共1-n這n個數,從1掃到n,掃到尾部就又從頭開始掃,每隔k步去掉一個數,問最終剩的那個數是什麼數。我就只接給出了最直接的O(n*k)解法,把1-n用一個雙向鏈表表示解之。感覺應該有更優的解,不過沒有想出來。

第三題是要求把二叉樹根據一些規則更新節點值:對於重複出現的節點,節點值全部置0,沒有重複出現的節點,節點值另外分奇偶處理。首先想到的就是先掃描一遍二叉樹建一個哈希表,記錄下所有重複出現的節點值,然後再掃描一遍更新各個節點即可,反正心想O(n)也是最優了。不過馬上被告知希望只掃描一遍,於是把哈希表的結構改了下,key是原來的節點值,value是node指針。每次碰到一個節點,如果是新節點,就加入hash表,否則找到對應的指針,將之前重複的節點值置0。面試官的標準解法貌似跟我的想法不一樣,一開始說這樣做可能不行,後來我演示給他看了才相信。


第三輪:白男項目經理

白男很nice,得知我需要改訂機票的時候直接說讓人給我訂個頭等艙彌補下我,搞得我很感激。問我的是一個手頭上的真實項目,分成兩塊。第一塊是對數據流的實時分析,time series analysis,問我算法問題。剛好我做過類似的東西,然後稍微customize了一下自己還在under review的論文裏的一種算法,順利解之。白男boss發現居然可以這樣解決問題,比較滿意。

第二塊比較無聊,大概意思就是說,所要的結果應該綜合對數據流查詢的實時結果和對數據倉庫查詢的實時結果,雖然第一塊解決了對數據流查詢處理解決了,對數據倉庫的查詢怎麼解決。由於各種查詢非常多,而且單次的查詢開銷大,該怎麼辦。我先給他了一種pre-aggregation的解決方法,畢竟自己做過這方面的project,他不怎麼了解pre-aggregaiton這個方法,解釋過後他說不準有任何的近似求解,並且否定了這個方案。後來我說就用空間換時間,弄一層cache layer。他就說數據太多,cache不夠大怎麼辦,我說用做成分佈式的,用hash partitioning就行了。他又說我現在就一臺機子,怎麼辦?我後來跟他說那就把數據壓縮下吧,順便弄成column-store,獲得更好的壓縮比例。他繼續問,如果壓縮以後cache還是裝不下怎麼辦?我想了會兒,他提示其實很多查詢並不是會被經常用到。坑爹呢,早點提示這點不就行了,我連忙說只存儲最常用的查詢結果就可以了,另外查詢的就直接訪問後臺數據庫吧。然後補充道這個必須以各種查詢的頻率分佈是傾斜的爲前提,例如zipf分佈什麼的。他估計就盼着我說這一點了。

這一輪自己感覺非常幸運,畢竟兩個星期前纔開始接手一個數據流處理的project,投的簡歷里根本沒有寫有這方面的背景,好在兩個星期的初步學習使得我現在對他說的那些概念都非常瞭解。另外很多問題我都有相似的項目經歷,甚至用上了自己論文裏的算法思想,實在是太幸運了。。。


第四輪:HR MM

長得挺漂亮的,一頓狂侃,沒有問什麼所謂的behavioral question。最後她怕公司太大我走迷路,送我出門。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章