一、刷了忘的原因是:没有真正理解解题思路
解题不应该要求做过的问题都能记住答案。忘了说明以前做的时候就没有真正理解,试图回忆解题步骤是不正确的,应该尝试回忆解题思路。但更有效的做法是 在刷题的时候就深刻理解解题思路。
检验一道问题是不是真正掌握,正是须要在我们完全忘记了解题思路以后,如何一点一点通过题目的条件分析出解题的思路、用到的算法和数据结构。
二、多想想为什么,而不要记住是什么
刷题就是一遍一遍做题,巩固知识点的过程。平常做题的时候没有思路,看题解是非常正常的。但是我们在看题解的时候,不要只看解法,记住算法,而应该去思考算法为什么这样设计。多问一问自己:
为什么想到「二分查找」、为什么想到「滑动窗口」、为什么想到「双指针」?
为什么想到用哈希表记录已经遍历到元素;
为什么求最短路径用「动态规划」和「广度优先遍历」、为什么有一些最优化问题可以用「贪心算法」,直觉来自哪里,如何证明?
三、零基础刷题的正确方法
1.按知识点刷题
2. 刷题和理论知识学习结合
面试考察的算法和高考数学题一样,都有固定考察的知识点。因此我们在准备面试(笔试)的时候,可以按照知识点各个击破。「力扣」的 学习 板块就有很多已经分好类的免费的教程。也可以在「力扣」中按照标签筛选同类问题,逐个掌握每个知识点的思考路径。
遇到不会的问题可以看题解,题解中如果遇到不会的知识点就须要查资料进行学习,知识点的学习找任何一本介绍算法的书籍或是网络教程都可以。学习完以后还要不断做题以巩固知识点。
四、抓大放小,提高刷题效率
题目很多,没有必要要求自己全部都掌握、全部都会做。在准备算法面试的时候,在时间有限的前提下,应该注重基础算法、数据结构、常见(高频)问题的准备,不应该只满足于做对这个问题,而应该以 能够在面试的时候清晰地向面试官表达解题思路 为目标,因为面试是和面试官的对话,仅仅把代码写对是不够的。