專欄 | 九章演算法
網址 | 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輪遇到這麼多題目,必然要跪。
推薦閱讀:
- 《北美IT企業fulltime薪資大曝光》
- 《IT 簡歷模板大放送 | 《如何寫好技術簡歷》講座精華總結》
- 《offer收割機的求職祕訣 | <如何成為offer達人>講座精華總結》
- 《Google offer 如何談判?聽聽 Google recruiter 怎麼說!》
- 《面試遇到做過的題怎麼辦?》
- 《冷凍期大揭祕 | Google、FB、Amazon、Linkedin冷凍期》
- 《面試前如何瞭解一家IT企業?試試官方技術部落格!》
- 《北美IT企業intern薪資大曝光》
- 《16個behavior question 的面試官解析及tips》
- 《Google晉升機制 | 大公司如何升級打怪, 獲得晉升?》
歡迎關注我的微信公眾號:九章演算法(ninechapter)。
精英程式設計師交流社群,定期釋出面試題、面試技巧、求職資訊等