Facebook Onsite面经 2016年4月(已拿到Offer)

 

今天给大家带来某学员在加州的Facebook和GoogleOnsite面经!总体而言,笔者认为google...

作者:九章学员

拿到 Offfer: Google, Facebook; 签约 Offer: Facebook

这是一个 Strong Hire 学员的面经哦~~

Facebook Onsite 面试从上午10点左右开始,报到之后有一个recruiter带着进office(一般来说都是一个很nice的female,有什么问题都可以询问她~)。笔者被安排进行4轮面试,前两轮是ninja,第三轮是lunch,第四轮是jedi。ninja表示programming interview,jedi表示behavioral/cultural/programming interview,因为笔者是new graduate,所以没有进行System Design的面试(pirate)。
Part
1


Onsite 1

第一轮,一个很nice的小哥

第一个问题是给一个数字序列,把里面的0放到最右边,非0的放到左边。笔者脑海中浮现出“哪里不会点哪里”的广告,so easy!对吧。

第二个问题是求一个数组中的第k大元素,九章曾发过此题的微信题解,用快速排序的思想每次只搜索一边可以在O(n)时间内解决,笔者用该方法完成了程序并模拟了给出的样例。
Part
2


Onsite 2

第二轮是一个印度小哥。问了一个LintCode原题 add and search word,设计算法支持两个操作,一个是add一个字符串,一个是search某个字符串是否在目前的字典中。查找的串可能包含通配符‘.',匹配任意一个字符。用Trie Tree即可。

然后小哥问了一下如何在space和time之间trade off,这个问题我做题的时候就想过,因为这题有两种做法,一是建树时不把'.'作为一个字符,而在搜索时碰到'.'时搜索所有儿子节点。另外一种是建树时把'.'加入到每个节点的儿子节点中,把所有包含'.'的字符串也存在Trie Tree中。两种做法的区别在于,前者空间复杂度低,每次add时间复杂度是字符串长度,每次search时间复杂度是O(26^'.'的个数);后者空间复杂度高,每次add时间复杂度是2的字符串长度次方,每次search时间复杂度是字符串长度。印度小哥表示挺满意的~
Part
3


Onsite 3

第三轮是和recruiter吃个饭,匆匆忙忙的饭总是不怎么好吃;遇到什么问题可以在这时候提出,并不会影响面试结果。
Part
4


Onsite 4

第四轮是一个不知道哪里的小哥,说话声音很小,让人感觉和蔼可亲。

首先问了why facebook,以及一些做过的project,然后重点关注在project里遇到的challenge,有没有和teammate的意见不同的情况,怎么解决之类。

先问了一个特别简单的动态规划题(忘记了),然后是一道算法题判断一棵树是否是BST,这次写完代码有一个小错误,小哥给了一个样例,在试着跑这个样例的时候我发现并改正了bug。

总的来说Facebook面试的题目还是比较简单的,相比题目的难度,更加注重的是分析过程。同时面试官会要求我对样例进行一步步的模拟,了解我思考的过程,同时验证程序的正确性。

暑期《算法强化班》正在报名中,第一节免费试听,登陆官网,或点击“阅读原文”可直接报名。

简介
九章算法,帮助更多中国人找到好工作!

九章算法,团队成员均为硅谷和国内顶尖IT企业工程师。提供算法培训、面试咨询、求职内推。

目前开设课程有九章算法班、系统设计班、Java入门与基础算法班、九章算法强化班。更有android/big data/ios 等即将开课。

目前培训的程序员遍布中国、美国、加拿大、澳大利亚、英国、新加坡等14个国家和地区。

更多详情,登录www.jiuzhang.com,或致信info@jiuzhang.com.


    关注 九章算法


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册