刚刚结束了在Snapchat的面试,我应聘的是software engineer 职位。
Snapchat面试的效率真的很高,网申第二天就被通知可以预约电面时间了。在我参加完电面两天后就收到通知可以进行onsite面试。
电面:
简单的自我介绍后就进入了正题,三道题目,题目难度一般,总体这一面感觉比较轻松。
题目是 2 sum, 3 sum, 4 sum
1.LintCode: 2 Sum
LintCode原题链接:http://www.lintcode.com/zh-cn/problem/2-sum/
参考答案:http://www.jiuzhang.com/solutions/2-sum/
2.LintCode: 3 Sum
LintCode原题链接:http://www.lintcode.com/zh-cn/problem/3sum/
参考答案:http://www.jiuzhang.com/solutions/3sum/
LintCode: 4 Sum
LintCode原题链接:http://www.lintcode.com/zh-cn/problem/4sum/
参考答案:http://www.jiuzhang.com/solutions/4sum/
最后还详细地针对我的简历问了一些问题,之后就让我等通知。
电面结束后第二天,我就收到通知可以进行onsite面试。
Onsite
Onsite面试有4轮
Round 1
第一轮面试官是个老中,我们简单聊了了一下就进入正题,开始进行coding。
1.找出所有的亲和数(如果两个数a和b,a的所有除本身以外的因数之和等于b,b的所有除本身以外的因数之和等于a,则称a,b是一对亲和数)
LintCode原题链接:http://www.lintcode.com/zh-cn/problem/amicable-pair/
参考答案:http://www.jiuzhang.com/solutions/amicable-pair/
2.大数相乘
LintCode原题链接:http://www.lintcode.com/zh-cn/problem/big-integer-multiplication/
参考答案:http://www.jiuzhang.com/solutions/big-integer-multiplication/
Round 2:
第一轮后等候了一会儿就进入第二轮,面试官换了一个,是个挺年轻的金发青年,看起来很有活力。小哥很健谈,聊了一会儿天,就问了一道题。
1.life游戏(和yelp相似)。
Follow up:从二维到多维,如果有很多用户访问同一游戏板,并且他们有不同到试图怎么办?
Round 3:
这一轮面试官先聊了聊之前做过的项目。然后问了我为什么选择Snapchat,我就说了一下看好前景什么的。可能是这个答案,太大众化了,他没说什么就让我做题了。
1.关于Snapchat的服务器设计的讨论。
要求:保证消息传递的可靠性,同时需要保证可靠传输后的删除
2.设计一部电梯。
第二个问题我卡了很久,面试官忍不住提示了我,还好最后做出来了,有惊无险。
Round 4:
问了一道题,有些点还是需要注意的,认真一点儿基本上没问题。
1.把BST转化为双向链表
LintCode原题链接:http://www.lintcode.com/zh-cn/problem/flatten-binary-tree-to-linked-list/
参考答案:http://www.jiuzhang.com/solutions/flatten-binary-tree-to-linked-list/
总的来说,还挺顺利,最后也拿到了offer。虽因个人原因拒绝了,但从面试和之前的了解来说,Snapchat值得一试。