我见过完全0基础、大龄转码,刷题上千然后进谷歌的……
姑且称他为老A吧。这里0基础指的是没学过编程语言,没学过数据结构和算法,一上来就直接做题那种。
第一道题two sum,老A显然是不会做的。他的方法就是看答案,背答案,然后默出来,就这样还是错了很多次。
然而就是这样低的起点,老A把LC前300道题刷了至少3遍,累计刷题数超过1000道,最后靠刷题上岸了谷歌。
关于老A的求职过程和刷题经验,可以来看看他自己的分享:
我说老A的故事,并不是鼓励大家从0开始刷题,毕竟老A自己也走了很多弯路,踩了无数坑。
如果能早点掌握正确的方法,老A也就不用刷1000道题了。不过老A的刷题经验和面试做题方法确实有独到之处。
在Leetcode/LintCode开始刷题,首先最好能具备一定的基础,包括:
语言基础
用于刷题的编程语言有很多,算法是通用的,不受限于语言,主流的Java或者Python都可以。
Java的优点是用的公司多,一般面试官没有不会Java的;Python优势在于语法简单,coding能节省很多时间。
算法部分
二分搜索 Binary Search
分治 Divide Conquer
宽度优先搜索 Breadth First Search
深度优先搜索 Depth F