facebook面经三连发奉上

原帖地址:一亩三分地

十月中旬让学长内推的。。。然后十一月收到的可以约面试的邮件。第一面约在了十一月20+。然后加面一场。约在的12月10+左右。然后1月4最后一面
现在说面试:
第一面:
面试官迟到十分钟,没有自我介绍。问我你是要fb面试是吧。我说是。。好咱们来做一道题。。reverse print linkedlist。。我先写了一个先反转然后打印的方法。问了时间和空间复杂度。。然后然写一个递归的方法。我在这里出了点typo错误。。被他看到了= =。。。指出来才改掉。。然后这道题完了。感觉他没有话说了。。。。顿了一下。好你来介绍一下你自己吧。。我就巴拉巴拉说。说了十五分钟。。没说的了。。。他一看时间还多啊。。咱们再做一道吧。。于是就开始说。。让我写一个function。。mutex。。我一听mutex。我靠我OS没学啊(转专业狗),,想到学长的尊尊教诲。做人要诚实。。。于是直接告诉他。。没学。。打算下学期学。。他说没事儿。。你来坐坐试试。。我一口咬定。。我知道OS里面有进程锁这些东西。。但是真的不熟悉还没学。。他说 its OK。很轻快的说= =。。然后就结束了。。总共面试时间30分钟左右。。
一周后收到加面通知
第二面(加面):
印度小哥。。人挺耐心的。。听不懂都会耐心的重复。。十分钟介绍自己和project。。对我project里面的细节问的很多。。然后两道题。。第一道add binary。follow up 改成K进制如何。比如十六进制啥的。然后问完了看才半小时多,加了第二道题。。是判断是否是bst,,我写了一个iterative 用stack的方法。。他一直看不懂。。我就跑了一个test case。。。他说got the idea。。面完之后。。。才发现。。写掉了很重要的一行= =。。。不过还好小哥用c++的我写的java(他的给的函数的参数都是指针 lol)估计他也有点云里雾里。然后我趁那个coderpad会议还没结束。。自己加上去了。。一周不到收到最终onsite通知

小插曲。。。当时马上回国了。。加上谷歌match到了host要约谈。。我就说我有谷歌deadline。。还要回国。要求电面。。就答应了。。于是回国用Skype电面

第三面:
中东小哥。超级热情。话很多。问到他的G点上就一直说。上来就做题。。第一道题#randomly return the index of maximal elements in the array. 我用的地里一个兄台的one pass方法。。小哥没看懂。。我就把概率证明了一次。然后就great idea了哈哈哈。。第二道题minimum window containsing a string变种。。输入是一个字符串和一个集合。。集合就是我们要的之后最小窗口里面必须有的字符。我当时知道这种考法。。但是这道题本身就难= =。。。背了解法。。就先说了想法。。小哥说great idea!然后我就照着原来的解法边写边改。。。中间出了bug。。他指了出来。跑了个testcase我才发现= =。。。。。然后继续写。。写完了他还帮我瘦了一下身。。说原来的code work 但是这样更好嘛。。我写了大概二十分钟。。。写完了叹了口气。。他也跟着叹了口气。。。不过他一直在说你的idea很棒啊。用hashmap。。最后问了时间复杂度空间复杂度还有hashmap的put方法的时间复杂度
然后问问题就结束了
当时半夜三点面的。。。面了一个小时。都四点了。。四点半的样子收到recruiters邮件约打电话说讨论结果。。结果时间越来越去还是当天六点就打了。。。她说feedback不错。不过要等结果。但是manager周三才上班最早那天才有结果。。我说吼啊。谢谢谢啊。。我激动的上床睡不着。。。六点上去八点又蹦起来了。。结果周三了还是没结果
//————————–//
总结一下:
其实大家如果自己总结面经的话就发现了。。他们出题都是这个套路。。我在面经里面看到几乎都是random 那道题和window这道题搭配。reverse linkedlist 和mutex搭配。每次必问复杂度。对bug free要求很高。中东小哥的口头禅就是I think there might be a bug here

补充内容 (2016-1-8 10:01):
收到了rej。。。。recruiters说feedback不错。但是没到bar。。。。。。。。真是够了。。。