先说结论,无论你职级高低,一定会问。
通常情况下,互联网社招是 4-5 轮面试,至少会有 1-2 轮算法题。
值得注意的是,如果在面试中你已经展示出了较好的算法基础和技术能力,算法轮可能会“走个过场”,面试官简单出两道 easy 或者 medium 题。但如果面试官无法从面试中判断你的能力水平,就只能通过题目来考(卡)你。
想拿下算法面试,很多人的第一反应就是刷题。我在脸书当了 5 年面试官,期间面试超过 500+人,也接触过不少求职者,发现大多数人在刷题时都存在这些问题:
①要刷的题目太多,短时间备战面试的情况下根本刷不完
②题目刷完就忘,根本没有掌握题目背后的算法和数据结构知识点
③遇到新题、变形题就毫无思路,没有触类旁通。
因此,我在《九章算法班》上总结了互联网算法面试的常考知识点,颜色越深的考的概率越高,颜色越浅的考的越少,标为灰色的知识点是极低频题,考到的概率低于 1%,如果时间紧迫可以选择不刷或者少刷。
按照知识点考察的频率刷题,可以帮你节省一半以上的时间。
至于如何根据算法和数据结构的知识点刷题,再给大家安利**LintCode**这一刷题神器,直接选择你想要重点提升的算法和数据结构的知识点进行刷题。
当然,如果你已经收到了大厂的面试邀约,还可以直接按公司 tag 筛选,针对性地刷公司出现的高频题。
关于这些算法和数据结构的考察频率、难度、建议刷题数,我都帮你整理好了,拿走不谢。
PS:如果你觉得自己的算法能力不够扎实,刷题也一直不得要领,不足以应对不断内卷的算法面试,推荐先去《九章算法基础班 Java+Python 》夯实一轮基础。
此外,最近有人问我,面试一定要刷难题吗?其实这是根据情况而定的。
比如像是阿里、字节这类大厂,必须要刷难题。作为超级独角兽,竞争压力也大,算法考察范围很广,特别喜欢 DP 和红黑树 Red-black Tree,线段树 Segment Tree ;
像是搜狗、360 这类中厂,刷中等题辅以部分难题基本就能应对;
去其他的中小厂,算法面试考察范围很窄,只需要把 Binary Tree, LinkedList, String, Array 这些基本数据结构相关的题掌握即可。
在《九章算法班》里,除了教大家如何高效刷题,关于算法面试中优秀的 Coding Quality,面试中如何与面试官沟通,如何套用算法模板……算法面试中的方方面面我都会在课上讲解,现在为回馈知友,特别开放**前四章节免费试听,**感兴趣的朋友不妨去体验一下~