刷题经验分享
先贴下我的刷题进度,这个图是我之前准备换工作时候刷题的进度,大概是两个半月AC了468道题,而且全是工作外的时间做到的。在面试做题的步骤中,基本上普通的中等难度题十分钟以内就能AC掉。

下面这个图是年后想着再找找感觉,但因为工作已经确定下来了,就简单刷了几天,没再继续。

目前市面上有很多刷题网站,leetcode应该是最成熟的,这里建议大家在leetcode上刷题,也建议大家办个会员,能让你的刷题效率更高,而且上面还有会员的专属学习计划,一年也就几百块钱,学生好像是有半价优惠,如果单纯是为面试而刷题的同学,可以考虑办个每月自动续费的会员(我就办的这个,刷了四个月后取消的会员)。
怎么刷题?
打开leetcode网站,在网站右侧你会看到精选题单

建议大家主要刷我圈出来的这几个题单里的题,特别是《剑指offer》和《腾讯精选练习50题》,这里面都是绝对的高频题,一定要掌握的。
可以先刷一遍《腾讯精选练习50题》,里面各种类型题都有,先锻炼你的刷题感觉,确保自己见过常见的类型题,一道题如果20分钟还没思路就可以直接看答案了,我估计20分钟都没思路的题,再花1小时也大概率也是做不出来,不要浪费这个时间,直接看答案就好,但看完答案后不要抄袭,一定要确保理解了这道题的解法,自己重新敲一遍,确保可以通过所有测试case。
这里有一点要注意,不要单纯的追求AC一道题,即便你自己AC了这道题,也要去看题解,看看这道题有没有其它解法,要确保自己理解了这道题的多种常规解法,特别是最优解,然后手敲AC通过才算结束。因为很多面试官的要求不同,你用解法A做出来一道题,但这可能不是他想要看到的,他想要的答案可能是最优解B和你的多种解题思路。
刷完《腾讯精选练习50题》后,可以去刷《剑指offer》,但到了这个阶段,建议不要按顺序刷,而是要按类型去刷,刷完一个类型后,确保自己完全掌握了这种类型题的套路。
比如你刷到了这道题https://leetcode.cn/problems/target-sum/

这里涉及到背包和动态规划的套路,你可以去看看对应的题解,找到点赞最高的几个答案,比如这个题解
https://leetcode.cn/problems/target-sum/solution/gong-shui-san-xie-yi-ti-si-jie-dfs-ji-yi-et5b/,
关于这道题讲解的就很详细,更重要的是她会把相关的高频类型题在题解的后面给你贴出来

可以按照她总结的这个目录去把相关类型题都刷一遍,刷完相关类型题后,需要确保自己掌握了背包相关的绝大多数解题套路,特别是背包九讲https://t.zsxq.com/02iQfu3B2。
其他的题型也是类似的刷题套路,比如排序、二分、回溯、动态规划、背包、二叉树、滑动窗口,都有套路,都有相关的优质题解。
这里我贴一下自己当时刷题总结的部分笔记链接:
【接雨水】https://leetcode-cn.com/problems/trapping-rain-water/solution/
【背包】https://t.zsxq.com/02iQfu3B2
【股票】https://leetcode-cn.com/circle/article/qiAgHn/
【排序】https://leetcode-cn.com/problems/sort-an-array/solution/pai-xu-shu-zu-by-leetcode-solution/
https://blog.csdn.net/han_xiaoyang/article/details/12163251
【动画模拟】https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
【扫描线】天际线问题https://leetcode-cn.com/problems/the-skyline-problem/
【摩尔投票】https://leetcode.cn/problems/majority-element/solution/3chong-fang-fa-by-gfu-2/
【数独】https://leetcode.cn/problems/sudoku-solver/solution/37-by-ikaruga/
【背包】https://leetcode-cn.com/problems/target-sum/solution/gong-shui-san-xie-yi-ti-si-jie-dfs-ji-yi-et5b/
这里是我根据自己的个人情况整理的刷题笔记,建议大家自己在刷题过程中整理出一套自己的笔记,有时间就看看,多练练相关的题。
刷题的常见问题:
- 刷题经常要看答案怎么办?
- 看答案很正常,但看完后你要掌握这道题背后的套路,确保自己下次遇到同类型的题时有解题思路。我刷第一遍时基本上每道题都会看答案,无论自己是不是AC。
- 刷过的题经常忘怎么办?
- 那肯定是你没掌握它背后的套路,多刷多练多总结吧。当然,也有很多题是没有套路的,完全智力题,这时可以看看这道题的出题频率,不建议在这种低频高难度题上浪费太多精力,面试时很少考,即便考了你当做面试官SB就好了,又不是面试Google。
- 注意一点
- 不要看到这道题已经AC过,就不再做了,不要怕麻烦,即便你之前AC过,你现在也有思路,也建议再手敲刷一遍。面试时人一般都紧张,可能只能发挥出自己平时50%的水平,要孰能生巧,这样在面试时你才能应对的更自如。所以上面你别看我完成了468道题,但其实我可能AC了上千次,有些题刷了好多遍。你也可以每刷一轮题新建一个进度管理的tab。
以上是我刷题的一些经验分享,希望对大家有帮助。
这里也分享下leetcode大佬的刷题方法论:https://leetcode.cn/circle/discuss/jq9Zke/
