FB面经集

原帖地址:一亩三分地

时间线:
3月份内推Fb,不久就收到拒信,但是说信息已经在系统里了。5月初收到hello from facebook,中旬第一轮电面,加面在一周后。六月中旬onsite,几天后通知要reference,前两天收到offer。把前前后后搜到的所有面经和解法都拿出来,已经放在附件里供大家下载。
一面:
给定任务AABCB, 冷却时间k(相同任务之间的最短距离时间),任务顺序不能变,问完成任务的总时间。
例子:AABCB, k=2, A**ABC*B, 时间为8.
解法:用hashtable保存上次的时间。
Followup1:如果k很小,怎么优化?
解法:之前的hashtable的大小是unique task的大小,如果k很小,可以只维护k那么大的hashtable。
Followup2: 如果可以改变任务的顺序,最短的任务时间是多少?
例子:AABBC, K=2, AB*ABC, 时间为6.
解法:根据每个任务出现的频率排序,优先处理频率高的。但是具体细节没有时间讨论。
感觉前两问回答的还好,就是细节和反应有点慢,最后一问没时间讨论。预感非常强,肯定会被加面,果然。

. more info on 1point3acres.com
加面:
华裔小哥放水了。
1. strstr, 不需要kmp算法,brute force

2. first bug version, 就是找左边界

onsite:
据说new grad是没有design的,没准备也没碰到。三轮,两轮ninja,一轮jedi。jedi的题一般很简单,主要是扯淡。
因为签了NDA,具体的就不说了,但是感觉难度还行,主要是要准确、快、最优解和对复杂度的掌握。
1. 三姐,但是说了两句后,感觉是个靠谱的妹纸。虽然在问复杂度的时候还是奇葩了下,而且最后被拍照了。只有一题,leetcode原题。

2. 华裔小哥,一进门就春风满面,有种不用担心,我会放水的哦的感觉。然而并没有….
第一题时没好好交流,以为是原题,就把答案嗖嗖写上去了,还解释了好半天。其实是简单变形,但又写了两次才对。
后来想想其实有个小bug,但是小哥用java,所以没看出来,哈哈哈哈。
第二题,还没吸取教训,以为很简单,谁知道是要往图上去想。不难,但是以为最多到树,所以根本没好好思考。
不过以我和小伙伴的经历来说,到了图或者trie这块,只要能想到思路,不用具体实现就行。

3.白人小哥,扯淡扯淡扯淡扯淡。突然来了个特别特别特别简单的题。

. 涓关于fb的几句话:
1. 刷面经啊小伙伴们
2. 准确、快、最优解和对复杂度的掌握
3. 多准备几个扯淡的问题,不然好尴尬
4. refer请直接消息我

关于找工作的几句话:
1. 虽然运气重要过实力,但是每个看似分分钟找到工作的人背后,也许是数月的挣扎
2. 别老想着题刷好了再申请。在fb看到一句话,done is better than perfect.
3. 道路阻且长,找个基友一起吧