LZ没有参加过任何算法竞赛之类,所以按理来说找工作就该认真刷题,但是我又是那种偏爱夯实基础,而不喜欢突击准备的那种人。在我想来,当然也许不一定对,刷题刷到后面很多难题靠自己(普通人)是做不出来的,基本都是看了答案,多默两遍code,然后记住。相对的,简单的题不用刻意狂刷题,只要基础打牢,完全也可以自己做出来。而面试*一般*面的都不会太太难。所以,基于这番考虑(外加偷懒的心态),我最终除了去年找实习时候做过cracking the code interview一遍之外,没有刷任何题,leetcode啥的看也没看。
. .и
所以,我最终选择去看introduction to algorithm,就是那本经典的CLRS。重点看了包括dynamic programming, divide and conquer,greedy等一些我个人认为是重要的解决算法问题的思想有关的内容,快速复习了排序,hash,图算法等常用基础知识。
那这样的准备到底是否足以应对美国各热门IT公司的面试呢?只有实践才是检验真理的唯一标准。
. check 1point3acres for more.
最后我检验下来结果就是:
算法题,基本没遇到过不会的,只有在facebook有一个强连通分量我实在不记得那个标准算法咋整的了,面试官也不肯给提示(这个比较奇葩我认为)。不过算法题也许是我比较幸运,没遇到太难的。我只遇到一次动态规划,然后由于我没刷过题,所有题对我都是新题,我没法告诉大家是不是leetcode上的。反正给我感觉,都不是太难。
设计题,google, two sigma做的很好,linkedin做得很一般,square和facebook没问。结论还是很难准备。