Snapchat 面經 | LA 總部面試體驗

專欄 | 九章算法
網址 | www.jiuzhang.com程序員

面試流程面試

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

電面編程

電面比較輕鬆,先是自我介紹,而後問了一些我簡歷上的項目問題。由於這一部分能夠提早準備,因此表現的比較好。數組

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

完美平方ui

這道題目以前在Lintcode上刷過,因此完成的還不錯。線程

Lintcode原題連接:
www.lintcode.com/zh-cn/probl…日誌

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

電面沒多久被通知能夠參加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教育領域的深耕者
相關文章
相關標籤/搜索