2017-09-20 九章算法
专栏:九章算法
网址:www.jiuzhang.com
在网上投了简历,一周后收到面试通知。
面试是在Snapchat LA总部面的,公司环境很好,可以看到海景。
另外,面试报销机票、住宿的所有费用。平常在大农村住久了,这次就当去 LA 玩一下。
面试流程
整个面试过程包括一场电面和四场onsite。
1: 电面
电面比较轻松,先是自我介绍,然后问了一些我简历上的项目问题。因为这一部分可以提前准备,所以表现的比较好。
另外还问了一道Lintcode上中等难度的算法题
(1)完美平方
这道题目之前在Lintcode上刷过,所以完成的还不错。
Lintcode原题链接:Perfect Squares
参考答案:Perfect Squares
电面没多久被通知可以参加OnSite了,并约了OnSite的时间。
2: OnSite One
第一轮onsite问了一些计算机基础知识方面的问题和一道算法题。
(1)给出一个数组
包括一些会议的起始时间和终止时间,判断一个人能否参加所有的会议。
LintCode原题链接:Meeting rooms
参考答案:Meeting rooms
3: OnSite Two
这一轮问了两道算法题:
(1)给出:
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;
(2)最小字串覆盖
LintCode原题链接:Minimum Window Substring
这道题目稍微花了点时间想,但最后还是做出来了。
4: OnSite Three
第三轮onsite的时候给的算法题一共有三道。
(1)给出单核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
(2)在终端中输入一个文件名
然后按“tab”,要求找到与目标文件匹配的最小的字符串长度。
(3)编写一个可以由多个线程访问的计数器
每访问一次,计数器+1
5: OnSite Four
这一轮没太聊其他的,面试官看起来有些严肃,上来之后先问了问之前几面的感受就开始做题。
(1)旋转链表
LintCode原题链接:Reverse Linked list
参考答案:Reverse Linked list
(2)层次遍历二叉树
LintCode原题链接:Binary Tree Level Order Traversal
参考答案:Binary Tree Level Order Traversal
(3)给定一个字符串,逐个翻转字符串中的每个单词
LintCode原题链接:Reverse Words In a String
参考答案:Reverse Words In a String
(4)如何使用4G RAM对磁盘中100G的文件进行排序
面试感想
四轮现场面下来,发现snapchat非常看重算法和编程能力。
而且snapchat现场面时给的算法题数量相比之前面试过的其他公司也多一些。
所以面试前一定要好好刷题,提升一下做题速度。不然像我第4轮遇到这么多题目,必然要跪。
更多精彩IT求职干货:点击可阅读
欢迎关注我的微信公众号:九章算法(ninechapter)。• 12 个 tips 教你搞定 onsite!
• 25 个 questions, 教你向面试官提问!
• 10 个 tips 教你搞定电面!
• 北美IT企业fulltime薪资大曝光
• IT 简历模板大放送 | 《如何写好技术简历》讲座精华总结
• 面试遇到做过的题怎么办?
• 冷冻期大揭秘 | Google、FB、Amazon、Linkedin冷冻期
• 面试前如何了解一家IT企业?试试官方技术博客!
• Google晋升机制 | 大公司如何升级打怪, 获得晋升?
精英程序员交流社区,定期发布面试题、面试技巧、求职信息等
