專欄 | 九章算法
網址 | 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輪遇到這麼多題目,必然要跪。
推薦閱讀: