“Leetcode明明吐血刷了400题,还是没能通过大厂面试”,原因到底出在哪!!
这是很多面试失利同学给我私信最多的问题,题也刷了…肝也爆了…还是被现实狠狠的给了一巴掌!
身为面试超200人前FB面试官,这个问题我比你清楚!
首先要清楚一点:刷题的目的是通过应试,重点不在于“数量”,而在于方法+捷径,找对学习方法,拿到offer真不是什么难事!
从面试官角度来看,算法可以看出应聘者的解题思路,以及迅速变成代码的能力。比如一些二叉树相关题目,就能体现面试者对数据结构的熟练度以及分析算法复杂度的能力。
企业考算法并不是为了一个答案,综合考察和验证应聘者的基本功是否扎实,反应是否敏捷,这些在对方解答一道题的过程中就能体现出来。
不过,任何事都遵循二八定律,我们只要掌握住20%,就能拿到80分!
★☆★ 这就是我们在准备算法面试时要讲究的“性价比”!★☆★
如果是单纯为了应对面试,巩固算法知识,何必死磕leetcode大几百题??
省下来的时间谈个女朋友,他不香吗?
我去年有个学员就是这样,刚大学毕业就想着去大厂,满腔斗志天天给自己搞题海战术,也不复盘不总结,就是死命的刷题,面试不知道翻车了多少回。
我当时真的看不下去了,给他认真分析了一下情况,还推荐他看了左程云老师公开课后,他终于上道了……现在说起来当时还要感谢我呢。。。
算法面试最大的难点就是知识点太过冗杂。
其实,在实际面试时很多类型考到的频率都是极低了,如果时间有限这边建议干脆不看,把时间花在高频题上更“划算“!
令狐老师会根据近年国内大厂的算法面试趋势,给学员统计出必考题+高频题+难点题,帮助我们在有限的时间内梳理刷题侧重点。
如这两年大厂高频题主要以哈希表、二分法、拓扑排序算法为主,而动态规划作为历年考察的重难点,也是需要花时间攻克的。
这些高频考点老师都会在课程中分专题去细致讲解,面试碰到这些题型都可以直接套用“模板思维“去解题了。
★拿一道面试常考的双指针来举例:
使用条件
滑动窗口(90%) 时间复杂度 O(n) (80%是双指针) 要求原地操作,只可以使用交换,不能使用额外空间(80%) 有子数组 subarray / 字符串 substring 的关键词 (50%) 有回文 Palindrome 关键词(50%)
复杂度
时间复杂度: O(n) 时间复杂度与最内层循环主体的执行次数有关 与有多少重循环无关 空间复杂度: O(1) 只需要分配两个指针的额外内存
面试时碰到同类型题,想一想老师的模板小抄,按步骤coding下去准错不了~~
★实战阶段
不同类型题的“模板小抄”掌握了,就可以用lintcode里的题演练一下了。
它家的题型都是紧随大厂的真题实时更新的,保证了题库的新鲜度,如果你有明确的目标公司,建议你可以多刷该公司的常考题、必考题。
还可以根据实际需求按照类型的形式刷各种题目。题库按算法、数据结构、难度等不同维度进行了分类,特别适合小白较快上手,还能在线检测coding的正确率,很推荐试试。
平时多找几道同类型题目操练一下,感觉立马就有了,其他算法知识点也是如此,举一反三,贼好用。
最后——搞清楚大厂爱考啥
以阿里为例吧,社招基本以P6为起点,P5、P5+是校招,大家在投递简历之前,可以先给自己定个“小目标”。
如果你的java基础还很薄弱,应该考虑的问题是如何巩固基础知识,以及制定一条完备的大厂进阶路线。