Snapchat 面經 | LA 總部面試體驗

九章演算法發表於2017-08-14

專欄 | 九章演算法
網址 | www.jiuzhang.com

面試流程

整個面試過程包括一場電面和四場onsite。

電面

電面比較輕鬆,先是自我介紹,然後問了一些我簡歷上的專案問題。因為這一部分可以提前準備,所以表現的比較好。

另外還問了一道Lintcode上中等難度的演算法題

完美平方

這道題目之前在Lintcode上刷過,所以完成的還不錯。

Lintcode原題連結:
www.lintcode.com/zh-cn/probl…

參考答案:
www.jiuzhang.com/solutions/p…

電面沒多久被通知可以參加OnSite了,並約了OnSite的時間。

OnSite One

第一輪onsite問了一些計算機基礎知識方面的問題和一道演算法題。

給出一個陣列

包括一些會議的起始時間和終止時間,判斷一個人能否參加所有的會議。

LintCode原題連結:
www.lintcode.com/zh-cn/probl…

參考答案:
www.jiuzhang.com/solutions/m…

OnSite Two

這一輪問了兩道演算法題:

給出:

class Throttler {int qps;public Throttler(int qps) {}pubilc boolean allowAccess() {}}
實現速度限制器,allowAccess(),返回當前的時間是否允許

例如:
qps is 2
request1 time 0.0 return true;
request2 time 0.5 return true;
request3 time 0.6 return false;

最小字串覆蓋

LintCode原題連結:
www.lintcode.com/zh-cn/probl…

參考答案:
www.jiuzhang.com/solutions/m…

這道題目稍微花了點時間想,但最後還是做出來了。

OnSite Three

第三輪onsite的時候給的演算法題一共有三道。

給出單核CPU日誌

解析日誌,日誌中的每一行都有3列:

工作名(String)開始/結束(boolean)的時間戳(long)
名稱(String)開始/結束(boolean)時間戳(long)

比如:
f1 start 0
f2 start 2
f3 start 4
f3 end 5
f2 end 8
f1 end 9

對應輸入的返回值:
f1 : 3
f2 : 5
f3 : 1

在終端中輸入一個檔名

然後按“tab”,要求找到與目標檔案匹配的最小的字串長度。

編寫一個可以由多個執行緒訪問的計數器

每訪問一次,計數器+1

OnSite Four

這一輪沒太聊其他的,面試官看起來有些嚴肅,上來之後先問了問之前幾面的感受就開始做題。

旋轉連結串列

LintCode原題連結:
www.lintcode.com/zh-cn/probl…

參考答案:
www.jiuzhang.com/solutions/r…

層次遍歷二叉樹

LintCode原題連結:
www.lintcode.com/zh-cn/probl…

參考答案:
www.jiuzhang.com/solutions/b…

給定一個字串,逐個翻轉字串中的每個單詞

LintCode原題連結:
www.lintcode.com/zh-cn/probl…

參考答案:
www.jiuzhang.com/solutions/r…

如何使用4G RAM對磁碟中100G的檔案進行排序

面試感想

四輪現場面下來,發現snapchat非常看重演算法和程式設計能力。

而且snapchat現場面時給的演算法題數量相比之前面試過的其他公司也多一些。

所以面試前一定要好好刷題,提升一下做題速度。不然像我第4輪遇到這麼多題目,必然要跪。


推薦閱讀:



歡迎關注我的微信公眾號:九章演算法(ninechapter)。
精英程式設計師交流社群,定期釋出面試題、面試技巧、求職資訊等

九章演算法,IT教育領域的深耕者
九章演算法,IT教育領域的深耕者

相關文章