盼望着,盼望着,新冠终于和冬天一样慢慢走了,各行各业也逐步迎来了新生。很多人苟了一年之后,有的人希望升职加薪,还有很多人是“毕业”之后终于能出来面试找机会了。不管哪一种,有个问题必须要再次审视了——算法面试!如果想去好点的公司或者高薪的岗位,现场算法几乎是绕不开的问题。很多人平时感觉自己还挺聪明的,一到算法就智商归零, 该咋办呢?
首先,我们要明确为什么要考算法?很多人觉得学算法对工作非常有用,所以要好好刷LeetCode。我可以告诉你LeetCode里的算法是没啥用的,更不能直接用到工程里。你在工作中有写过链表吗?有写过二叉树吗?有自己实现过回溯吗,有写过动态规划吗?反正我从来没有。因为这种代码不易扩展 ,很难维护,如果在工作中写,一定会被骂。但是在算法里是绝对的重点,因为这些问题短小精悍,可以快速考察人的思维能力。
为啥要写算法,说好听的叫“考察思维能力”,说不好听的就是“刷人”。算法的一个大问题是题目难易相差太大,有的题目特别难。之前我曾面过北京的很多公司,根据我的经验,如果公司有意愿要你,会以中等题目为主。而那些题目很晦涩难写的情况,八成是公司本来也不想要你,只是想用个难题将你打发走。所以我在算法课里一直和大家说平时用20%的时间将80%的问题掌握好就够了。如果面试题真的太难,先尽力而为,不行就直接走人,人家本来也不想要你,纠结也没用。所以平时大家也不要被网上类似的噪音吓到,尽力准备就是了。
其次,前面说要掌握80%的算法,那这80