歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 阿裡巴巴研發工程師面經

阿裡巴巴研發工程師面經

日期:2017/2/28 15:30:45   编辑:Linux教程

前綴

分享一些面試的題目吧,是否拿到offer,還要等2周以後。

阿裡印象:

面試地點是在塘苗路18號,一淘那邊。

給我的感覺一淘的辦公環境著實一般,和網易杭州和MSRA是差了一個檔次的。

開始到的時候,很多人也在等,本來通知是4:40,結果等到5:20才面試,等待的過程中發現很多認識的人,阿裡如此早的啟動招聘,感覺浙大的所有人都被他給面了。

一面:

憑直覺覺得面試官會比較累了,畢竟有一天的面試,所以我展示一些真實的自己---幽默隨和

我第一句問面試官的問題是: 餓,你也用小米呀,你的會經常死機嗎?

結果他就笑了,隨便回答一下,感覺氣場上,我就覺得穩住了。

然後就正式面試了,先是自我介紹,然後又聊聊自己做過的東西,關於MSRA實習項目和關於科研項目的。

主要的技術面問題分享一下吧,可能大家對這個比較關心。

1. kmp最基本的考察
2. java序列化怎麼實現,自己設計一個
3. 系統調度算法,什麼時候會進行進程切換
4. 線程進程的區別
5. 虛函數 和 重載實現
6. acid

7. 單元最短路徑算法,考慮dijkstra在產品中的應用

感覺還有很多問題,不過都記不清了。

二面:

二面等了很久,真的很久,我進去二面的時候,都已經7:40差不多了。

面試官就是隨意了解一些之前做過的東西,然後問問如何能和淘寶聯系起來,問問為什麼不考慮網易游戲(因為個人簡歷感覺比較match游戲公司)。

總之二面也是終面,基本沒有什麼技術問題。

很多二十分鐘就面完了。

其實感覺今天面試還是比較happy的,感覺一面的時候氣場表現的很好,我們兩個聊得很happy的感覺。

接下來就不清楚了,等通知~

筆試部分:

順便補充一下阿裡巴巴筆試的題目。

1. 有一個有超大的集合A,裡面存儲產品ID,作為用戶浏覽LOG,可能有重復ID。

還有一個產品庫集合B,裡面也是產品ID

求B-A。

給定a、b兩個文件,各存放50億個url,每個url各占64字節,內存限制是4G,讓你找出a、b文件共同的url?
可以估計每個文件安的大小為5G×64=320G,遠遠大於內存限制的4G。所以不可能將其完全加載到內存中處理。考慮采取分而治之的方法。

  1. 分而治之/hash映射:遍歷文件a,對每個url求取,然後根據所取得的值將url分別存儲到1000個小文件(記為)中。這樣每個小文件的大約為300M。遍歷文件b,采取和a相同的方式將url分別存儲到1000小文件中(記為)。這樣處理後,所有可能相同的url都在對應的小文件()中,不對應的小文件不可能有相同的url。然後我們只要求出1000對小文件中相同的url即可。
  2. hash統計:求每對小文件中相同的url時,可以把其中一個小文件的url存儲到hash_set中。然後遍歷另一個小文件的每個url,看其是否在剛才構建的hash_set中,如果是,那麼就是共同的url,存到文件裡面就可以了。

2, 是關於字符串查找的

例如字符串數組 A = {"you", "are", "a good boy"}

現在有一句query. "kuku are good boys"

因為are在字典A裡,所以返回true,但是 good boys不是在字典裡面的。

1. 寫代碼

bool check( std::vector<string> &dict, string query);

2. 當A有如下性質的時候,如何使性能最好: A中元素很多,但是長度比較小。

感覺第一個就是枚舉query的所有後綴(以單詞為單位的),然後去dict裡遍歷。

第二個問,我給出的是trie樹

Copyright © Linux教程網 All Rights Reserved