在網(wǎng)上投了簡(jiǎn)歷,一周后收到面試通知。面試是在 Snapchat LA 總部面的,公司環(huán)境很好,可以看到海景。另外,面試報(bào)銷機(jī)票、住宿的所有費(fèi)用。平常在大農(nóng)村住久了,這次就當(dāng)去 LA 玩一下。
整個(gè)面試過(guò)程包括一場(chǎng)電面和四場(chǎng)onsite。
電面1
電面比較輕松,先是自我介紹,然后問了一些我簡(jiǎn)歷上的項(xiàng)目問題。因?yàn)檫@一部分可以提前準(zhǔn)備,所以表現(xiàn)的比較好。另外還問了一道Lintcode上中等難度的算法題
1、 完美平方
這道題目之前在Lintcode上刷過(guò),所以完成的還不錯(cuò)。
Lintcode原題鏈接:http://www.lintcode.com/zh-cn/problem/perfect-squares/
參考答案:http://www.jiuzhang.com/solutions/perfect-squares/
電面沒多久被通知可以參加OnSite了,并約了OnSite的時(shí)間。
Onsite1
第一輪onsite問了一些計(jì)算機(jī)基礎(chǔ)知識(shí)方面的問題和一道算法題。
1.給出一個(gè)數(shù)組,包括一些會(huì)議的起始時(shí)間和終止時(shí)間,判斷一個(gè)人能否參加所有的會(huì)議。
LintCode原題鏈接:http://www.lintcode.com/zh-cn/problem/meeting-rooms/
參考答案:http://www.jiuzhang.com/solutions/meeting-rooms/
onsite2
這一輪問了兩道算法題:
1.給出:
classThrottler{intqps;publicThrottler(intqps){}pubilcbooleanallowAccess() {}}
實(shí)現(xiàn)速度限制器,allowAccess(),返回當(dāng)前的時(shí)間是否允許
例如:
qps is 2
request1 time 0.0 return true;
request2 time 0.5 return true;
request3 time 0.6 return false;
2.最小字串覆蓋
LintCode原題鏈接:http://www.lintcode.com/zh-cn/problem/minimum-window-substring/
參考答案:http://www.jiuzhang.com/solutions/minimum-window-substring/
這道題目稍微花了點(diǎn)時(shí)間想,但最后還是做出來(lái)了。
onsite3
第三輪onsite的時(shí)候給的算法題一共有三道。
1.給出單核CPU日志,解析日志,日志中的每一行都有3列:
工作名(String)開始/結(jié)束(boolean)的時(shí)間戳(long)
名稱(String)開始/結(jié)束(boolean)時(shí)間戳(long)
比如:
f1 start 0
f2 start 2
f3 start 4
f3 end 5
f2 end 8
f1 end 9
對(duì)應(yīng)輸入的返回值:
f1 : 3
f2 : 5
f3 : 1
2.在終端中輸入一個(gè)文件名,然后按“tab”,要求找到與目標(biāo)文件匹配的最小的字符串長(zhǎng)度。
3.編寫一個(gè)可以由多個(gè)線程訪問的計(jì)數(shù)器。每訪問一次,計(jì)數(shù)器+1
onsite4
這一輪沒太聊其他的,面試官看起來(lái)有些嚴(yán)肅,上來(lái)之后先問了問之前幾面的感受就開始做題。
1.旋轉(zhuǎn)鏈表
LintCode原題鏈接:http://www.lintcode.com/zh-cn/problem/reverse-linked-list/
參考答案:http://www.jiuzhang.com/solutions/reverse-linked-list/
2.層次遍歷二叉樹
LintCode原題鏈接:http://www.lintcode.com/zh-cn/problem/binary-tree-level-order-traversal/
參考答案:http://www.jiuzhang.com/solutions/binary-tree-level-order-traversal/
3.給定一個(gè)字符串,逐個(gè)翻轉(zhuǎn)字符串中的每個(gè)單詞
LintCode原題鏈接:http://www.lintcode.com/zh-cn/problem/reverse-words-in-a-string/
參考答案:http://www.jiuzhang.com/solutions/reverse-words-in-a-string/
4.如何使用4G RAM對(duì)磁盤中100G的文件進(jìn)行排序
四輪現(xiàn)場(chǎng)面下來(lái),發(fā)現(xiàn)snapchat非常看重算法和編程能力,而且snapchat現(xiàn)場(chǎng)面時(shí)給的算法題數(shù)量相比之前面試過(guò)的其他公司也多一些,所以面試前一定要好好刷題,提升一下做題速度。不然像我第4輪遇到這么多題目,必然要跪。