不会高效刷LeetCode,还想进大厂?做梦吧!
是
还是
随着算法岗应聘人数剧增,大厂的要求也随之提高。2021年腾讯校园招聘网站上技术研究岗位投递录用比高达28:1。甚至有些大厂面试要求双985教育背景,大厂实习经验,参加相关领域竞赛获得top排名,并且发表相关领域顶会论文,异步君想说这是神仙条件吧。
在这千军万马过独木桥的形势下,0比赛0顶会0背景的同学能拿到大厂offer的不在少数。缺乏加分项的同学进大厂的核心竞争力是什么?
1
高效练习leetCode题库
不局限于计算机科学基础知识
假定你至少听说过《Cracking the Coding Interview》或类似书籍中的双指针和位操作等基本技巧。你不必掌握它们,知道它们是什么可以帮助你更好地研究LeetCode的解决方案。如果你只学习过计算机科学基础知识,则可能希望在开始练习LeetCode题目之前先快速阅读一下这些书。
训练难度要循序渐进
按算法分类来选题
-
通过持续地刷同个类型的题目,可以不断地巩固和加深理解。 -
全面接触一个数据结构算法的各个变型,总结变型题之间的共同性和差异性。这样对算法的理解会更加全面和深刻,学习的效率会更高。
LeetCode做题步骤
-
阅读题目:有些题目直接说明需求,并提示需要使用的算法和数据结构;有些题目没有明确说明需求,没有提示用什么算法和数据结构解决问题。所以需要我们仔细地阅读题目,认真思考题目需求。 -
逻辑推理:在推导分析题目解决方案时,应注重题目逻辑上是否可以实现问题需求,不需要思考代码如何实现,这样可以极大的提高解题效率。不会因为同时需要思考解决方案和代码实现,而导致无处安放的手不知所措。 -
代码实现:将逻辑上可行的最优解决方案转换成代码是很重要的一个能力。有些题目将算法转换成代码很容易,但有些题目将算法转换成代码难度很大。编写代码时怎么定义变量保存状态,是使用递归或是使用循环加辅助数据结构等。这都是代码实现过程中需要思考的,所以编写代码的能力是需要我们刻意地练习。
练习LeetCode基本技巧
-
按通过率下降的方式对问题进行排序,先做接受率较高相对较容易的问题。 -
尝试在没有提示的情况下解决问题,可以先使用暴力解决方案。 -
研究最佳解决方案是如何应用技巧来提高算法性能的,一般是看运算速度在70%-90%之间的解决方案,运算速度最快的一些方案一般会采用非常规操作,不适合初学者学习。
-
仔细阅读问题中陈述的每个字,并寻找有关解决方案的提示。例如,任务的方式数量表示DP,带有字典的字符串转换表示BFS/DFS/Trie,寻找重复或唯一元素表示哈希或位操作,解析表示使用堆栈等。 -
当你对解题方向有一个大概了解时,你就成功了一半。尝试至少实现次优解决方案,不用担心方案不好。很多人都是花了大量精力来完善他们的解决方案以达到最优的效果。 -
一旦有了次优的解决方案,你可以直接看社区中最好的解决方案,以学习可以改进的内容以及解决相同问题的其他方案(不局限于一门语言,一个框架,其他语言解题方案可以开阔我们的思路)。 -
在没有任何提示的情况下,尝试独立思考解题过程,并根据自己的理解完成最佳解决方案。
2
“金三银四”
【详细课程介绍】
扫码进群加入社区
免费领取福利
算法春招面试公开课
原价199元,扫码入群限时免费学!
3月23日晚8点直播准时开讲!速来!
异步社区