FB一面+二面 + 小总结

原帖地址:一亩三分地

刚刚收到HR的邮件通知过了。在地里看了很多机经,回馈一下地里, 报个FB的offe :)
上周一面,面试官是个黑人姐姐,Ads组的,感觉很好相处。上来问了二十分钟简历,可能看LZ简历有一些Web的经历吧。聊完之后告诉我只有一道题。上来给一串start time - end time,格式是Apr 2010 - Mar 2011这种,要求计算出这些时间的总跨度,重叠的跨度不重复计算。举例:[“Apr 2010 – Dec 2010″, “Aug 2010 – Dec 2010″, “Jan 2011 – Mar 2011″]这一个string数组,结果为(12-4+3-1)=10个月。一出这题有点蒙,感觉代码量很大,时间又不多了,只能硬着头皮上。写完string->time的解析函数之后,发现其实就是一道merge interval的题: https://leetcode.com/problems/merge-intervals/ 然后看了下表还剩十分钟,就跟面试官讲了一下思路,开始全速写。。。最终也没有写完,还剩下两个辅助函数没写完,但是面试官听上去比较满意。最后五分钟让我问了一下问题,结束。

第二天,周二下午,收到二面通知,约在周四。时间有点紧,但是HR告诉我之后就是圣诞假期,再安排要到new year之后。。。硬着头皮上。

二面电话一接通,听口音感觉是印度人。。。(其实后来发现是俄罗斯人),一上来没问简历,直接做题,但是因为口音问题(囧),coderpad的链接就给我念了五分钟。。。他念的C和Z我实在分不清楚,最后就问他是Cat还是Zippo,小哥哈哈一下笑,Cat。之后上题(运气挺好的这次还是只有一道)。给了一串task,不同的task可能属于不同type。这些task要放到CPU里运行,运行同一种type是要考虑一个冷却时间。。。弄了半天,过了好几个例子才搞明白,就类似于一个OS。给你一个单线程的scheduler,和eg. 4种thread:1,2,3,4, 冷却时间: 3,在multithreading的时候同类型的thread要等上一个thread跑完冷却时间之后才能运行,求最后scheduler用了多少time slot。 举个例子,thread: 1, 2, 1, 1, 3, 4; 冷却时间: 2 time slot,scheduler应该是这样的:1, 2, _, 1, _, _, 3, 4,最后返回8. 想了一下就用个map存了不同type最近的time slot,每碰到相同的type就check一下冷却时间过了没,没过就等待。写到等待的地方,在考虑时间要不要加一的时候,脑子有点绕晕了。。。最后觉得不用加一,就告诉小哥我写完了,跑了一个test case发现撒比。。加上一,过了。面完之后感觉没发挥出正常水平,这么简单的地方还出问题。。。不过和小哥聊的挺开心的,两人一直哈哈=。=结束的时候小哥给我发了他Facebook链接,我们加了好友聊了几句,让我觉得可能还有戏?

忐忑地过了周末,刚刚收到HR地邮件,终于舒了一口气。

总结一些这段时间找实习的经历。 Leetode刷到200道的时候,接到FB面试,约在三周后,之后开始刷LC上FB的tag里的题目,全做了一遍,基本上这些题能一题多解。然后还剩下两周不到,开始刷地里鸡精。个人感觉鸡精很有用,merge interval这道题我好像就在鸡精里看过。总而言之,做题的时候尽量要求bug free,跑完之后去Dicuss里看看别人怎么写的,有什么好的方法,学着再写一遍,提高蛮大的。

最后祝大家都能拿到好Offer!!

补充内容 (2015-12-22 18:20):
举个例子,thread: 1, 2, 1, 1, 3, 4; 冷却时间: 2 time slot,scheduler应该是这样的:1, 2, _, 1, _, _, 3, 4,最后返回8 应该改为1, 2, _, 1, _, _, 1, 3, 4,最后返回9感谢指正:)