找工作算法刷题指南
人生的真相是重复 ——Acwing社区
前言
本篇适合想找互联网工作(算法、后端、前端、测开、数开…) and 没有ACM经验 or 对自己算法水平不自信的同学
明确目的
首先,我们刷题需要有目的刷,多刷,优刷 ,速刷…
最终目的是为了在面试手撕的时候吊打面试官,让面试官目瞪狗呆,瞠目结舌从而通过面试;而不是像大爷一样想刷哪里刷哪里
找工作的算法考核一般分为两个part
一 笔试
秋招or找实习基本上都只有中大厂有算法笔试,小厂几乎没有;笔试也叫海笔,公司会参考但不多,如果简历不错,哪怕一道题没做出来也能过,例如美团,京东;但是有的公司卡笔试,比如阿里通义、华为等公司;
笔试难度一般不是简单刷几道leetcode就能hold住的,如果没系统性的学过算法并且你的时间非常充足(距离找实习或者秋招大于8个月),建议可以每天花时间学一下:
- Acwing 算法基础课 非常好的算法学习社区,涵盖范围广,学了益处多多
- 内推鸭 直击中大厂原题,更有针对性
注:上述这两个都是本人知识付费过觉得物超所值的(大学生摒弃白嫖思维,愿意知识付费是很重要的)
考察形式:OI赛制(自己写输入输出),类比蓝桥杯,每道题按多次提交的最大通过率去计算得分(基本上骗分是很难的,一般会多组样例防骗分)
其实,笔试这个东西,
没必要那么老老实实的是有奥妙的,有邪修,欢迎留言
二 面试手撕
这一part才是找工作中的重要环节,例如一些大厂,手撕出来了不一定要你,手撕不出来基本不会要你
一般考核都是核心代码模式,那么LeetCode就是主战场,很多题目基本都是leetcode原题
但是题目这么多应该怎么刷呢?
这里分享一下我是怎么刷(所有面试过程中的手撕基本上没有问题)
语言基本不是什么问题,不要纠结语言问题,即便你面的java的岗位,你用c++手撕也是没问题的(当然最好的还是和岗位语言一致)
- 代码随想录 题量估计200道,这是一个非常不错的题单,覆盖广 🌟🌟🌟
- Hot 100 一定要会!刷的滚瓜烂熟,背也要背下来🌟🌟🌟🌟🌟
- CodeTop 有各个公司手撕题的频率,一般都是在面某个公司前,刷这个题单碰运气抱佛脚 🌟🌟🌟
如果你有一年及以上的准备时间,建议二刷代码随想录,n刷Hot 100,两者之间大概有50道题是重复的
如果你有半年左右的准备时间,建议一刷代码随想录,三刷Hot 100
如果你时间很急,报意思,请直接开始背Hot 100
Hot 100要刷到什么程度呢?看着就会,要能背出来,一道题AC时间不超过15分钟,时间空间复杂度要心里有数。例如这道题128. 最长连续序列我刷了9遍,已经会背了
心得:
手撕这个东西,基本必会,但是有些公司其实不是出leetcode原题,并且会有变式,例如字节腾讯,多数公司还是很人性的
善待算法题,很多题不是刷一遍就会了的,要反复的刷,反复的背,人生的真相是重复
另外,上面的题单有些hard题可以不用做其实,如果CodeTop出现频率高可以写一写
上面的准备仅限于算法题的手撕,其实还有一些比如多线程、设计模式的手撕是需要额外准备的,比如我遇到的一些海量数据场景题、手撕单例模式、业务场景手撕…
刷题无捷径,重复才是真