上周五面的,发面经攒人品。
第一轮behavior,一个中年亚裔女性面的,主要说我做过的项目,最后10分钟问了一个
next node in bst,给的是bst的任何一个node,return它的下一个。有parent
pointer。
第二轮coding,伊朗小哥。第一题是return random index of max in array, 比如有1,
3,6,5,2,2,6,6. 6是最大的,它的index是2,6,7,那么return(2,6,7)其中一个,概
率都是1/3。这题做过,有个in-place的办法,我上来就写的那个,结果他说他听不懂
。然后说没必要in-space,可以用extra space。我又慌忙写了一个用arraylist放所有
max index的,很简单了这个就。但因为折腾了一下快25分钟没了。第二题是minimum
window in string,leetcode题的变种,原题第二个string可以有重复的字母,这个都
是unique的,所以用一个hashmap + hashset就可以,比原题简单点,但时间有点紧,
写的慌慌张张的,40分钟勉强写完。中间还有两行pseudo code。吃饭的时候想起,里
面还有一个bug,不知面试官发现没有。。。
第三轮design,埃及杀手啊,从头到尾面无表情,口音也很难懂,我当时就觉得不妙,
果真就跪在这轮。design news feed API, 这题我准备过,但是按pull/push model准
备的,还准备了pub/sub model,就是给每一个friend都建一个queue,推送一份news,
算准备过的题。但他不考这些,根本不让我说关于aggregator tier或者database tier
的东西,主要focus API怎么写,input/output, feed里图片怎么存,想mention
friends怎么存,怎么做multi device sync。我觉得他的考点似乎在data
serialization/deserialization这边?感觉和他交流就是隔着窗户喊话,一直在猜,所
以差评也是必然的。。。
第四轮coding,美国小哥。问的就是regular expression matching, 这题F都考烂了,
先写的recursion的,问了时间复杂度度,worst case什么的,然后问还有什么办法,
我说还可以用DP,他说咱们时间怎么富裕(一半时间),就把DP也写了吧。。。额。。
。。硬着头皮写了几行,他一抬头看我写的这么困难,就说说说思路好了,我就说了说
思路,剩下时间就说聊天,竟然是一个学校一个系的师弟,比我晚毕业两年,估计看到
作为师姐的我毕业多年,还在为entry level的马工奔波,比较同情,最后说了很多鼓
励和肯定的话。
俺面fb的感觉就是其实他家coding并没有传说中要求那么高,但design并不容易答好。
而且coding有好几轮(包括店面的话)所以data point多,一道题做不好,也许还有回
转的余地。但design是一轮,答不到点子上,就会成为整个面试的single point of
failure....我建议大家多花点时间看design,多和别人讨论,像news feed这样的题,
看起来挺主流的,但他要准备到他要考察的知识点,并不容易。而且我是转行的,CS
mentality不太好,就是没有科班出身的那种解决问题的直觉和经验。碰到不会的题很
容易慌。我是coding做了不少难题,其实没有什么意义。如果把时间用在准备design上
,也许不是这样的结果。希望和我有类似背景的人可以吸取我的教训,我默默去蹲小黑
屋了。
No comments:
Post a Comment