在找工作的时候,我给Microsoft、Google、Facebook等几家大公司都投了简历,并且都收到了offer,但是我最后选择了FB,因为我个人是扎克伯格的脑残粉,此外,FB的工作环境也令我很满意。下面就介绍一下我在FB的面试经历,希望对大家有用。
FB的面试流程很规范,包括电面和线下面试。
在线编码
Q1:给定一个字符串,通过忽略空格来检查它是否为一个回位。
Lintcode原题link:http://www.lintcode.com/en/problem/valid-palindrome/
solution link:http://www.jiuzhang.com/solution/valid-palindrome/
Q2:大字符串相乘
Lintcode原题link:http://www.lintcode.com/en/problem/big-integer-multiplication/
solution link:http://www.jiuzhang.com/solution/big-integer-multiplication/
这一轮在线编码的题目很简单,很容易就能通过,也没有用太久的时间,通过了之后就开始等预约电话面试了。
Phone interview
1st Round:
电话面试一开始,和其他的公司面试大同小异,都是先讲讲以前做过的项目的经历和经验收获什么的,然后会根据这些问几个简单的问题。之后就开始出具体的题目了。
我被问了两个问题,其中一个我记得是:
你有两个稀疏的向量(大量的0)。首先告诉我一种表示和存储它们的方法,然后找到点积。
电话面试由于没办法把具体的代码呈现出来,所以需要比较具体地说明自己用到的方法和具体应该怎么做,尽可能让面试官能够考察到他希望看到的东西。
2nd Round:
这一轮还是电话面试,不过与前面的电话面试的面试官和面试内容都不太一样,有了很明显的深入的问题。
虽然如此,一开始还是先问了关于我的简历和我的以前的工作经验的问题。
然后面试官又出了两道题来考我,在回答完这两道题之后,面试官又进一步询问了我一些更加深入的问题,比如像你为什么会这么做?在此基础上再加一个条件,要怎么处理?等等这些问题。
onsite
1st Round:
这一轮是技术面,除了对于我过去的工作学习经历和项目经历都进行了更加深入的了解和询问,还问了我2个算法问题:
Q1:给n个在一列直线上房屋染色,共有k种颜色,设计一种染色方案使得相邻的房屋颜色不同,并且费用最小。
Lintcode原题link:http://www.lintcode.com/en/problem/paint-house-ii/
solution link:http://www.jiuzhang.com/solutions/paint-house-ii/
Q2:合并k个排序链表
Lintcode原题link:http://www.lintcode.com/en/problem/merge-k-sorted-lists/
solution link:http://www.jiuzhang.com/solutions/merge-k-sorted-lists/
2nd Round:
这一轮依旧是技术面,整个面试下来做了很多道题,从简单到深入,这一轮面试官与之前不同的是在原题的基础上对很多问题都有延伸,进而问了我很多延伸出来的问题,有时候我会卡住要求停下来想一想,然后把自己能想到的都说出来,整体表现还不错,面试官都对我挺满意的。
Q1:搜索旋转排序数组
Lintcode原题链接:http://www.lintcode.com/en/problem/search-in-rotated-sorted-array/
solution link:http://www.jiuzhang.com/solutions/search-in-rotated-sorted-array/
Q2:正则表达式匹配
Lintcode原题链接:http://www.lintcode.com/en/problem/regular-expression-matching/
solution link:http://www.jiuzhang.com/solutions/regular-expression-matching/
3rd Round:
这一轮是manger面,与之前的做题解题相比,这一轮面试就没那么死板,面试官问的问题比较“天马行空”,给我一种生活处处有问题,随手就可以拿来一个问题然后进行发展,这种面试问题很考验人,需要很灵活的思维才会能够给出一个比较好的回答,在这方面是没办法进行固定形式的准备工作的,而是需要对平时生活的观察和平时就养成的对问题的深究和思考能力,不过就算觉得自己的方法思路并不是很好也没有关系,只要有自己的想法,自信的说出来就好了。
4th Round:
最后一轮是HR面。
这一轮面试很简单,HR也很友好,问了一些简历上面的问题,然后就是一些像觉得FB未来前景和有什么改善的地方的问题,这些问题总体上算比较轻松,只要做了功课,能够发表一些有道理的见解即可。
大概过了一周我就收到offer了,FB的package也很诱人。
最后,还是要提醒各位,面试时一定要淡定从容,不要结巴,面试前要准备充分,做到有备无患,只打有准备的仗。