五毒神掌: 即五遍刷题法,强调练习算法题要过遍数,算法题不仅是做一遍通过而已,而是要通过刻意练习达到对算法熟练的效果。
- 第一掌: 5~15分钟思考,没有思路马上看题解,有时官方题解夹杂了数学推导、求证等非常复杂不一定适合自己,此时的做法是:先
BFS广度优先遍历
一下高赞回答,选择一个适合自己的(比如有图解或代码精简)题解,然后DFS深度优先遍历
把自己全部精力投入进去理解它; - 第二掌: 不看别人代码,自己尝试写下来,写完之后可以debug直到leetcode通过状态;一个题可能会有多种解法,要多尝试不同解法;
- 第三掌: 过了24小时之后,回过头来做重复的题,不同解法的熟练程度--->专项练习;
- 第四掌: 过了一周之后,回过头来再做重复的题,刻意练习自己薄弱的环节;
- 第五掌: 面试前1-2周进行恢复性训练。
五毒神掌核心策略: 刻意练习
+ 不断反复
,无他。
- 先暴力求解,然后再根据执行时间复杂度不断考虑更优解;
- 一维解决不了的问题,可以升维思考;
- 提交通过之后,一定要看官方题解或高精回答,看看高手们是如何写的,把牛逼地方借鉴过来;
一定要动手练习、且践行五毒神掌,建议每天3-5题。做老题(重复)比做新题更加重要: 90%老题,10%新题
- 不要死磕,敢于死记硬背,承认数据结构和算法有其客观复杂性,5~15分钟没有思路很正常,马上看题解或高精回答;
- 最佳方法: 坚持五毒神掌,
刻意练习
+不断反复
,记忆(脑图)+ 反复(五毒神掌) - 最大误区:
题目只做一遍!!
AlgoMooc