刷题经验分享

先贴下我的刷题进度,这个图是我之前准备换工作时候刷题的进度,大概是两个半月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/number-of-islands/solution/dao-yu-lei-wen-ti-de-tong-yong-jie-fa-dfs-bian-li-/

【接雨水】https://leetcode-cn.com/problems/trapping-rain-water/solution/

【回溯】https://leetcode-cn.com/problems/subsets/solution/c-zong-jie-liao-hui-su-wen-ti-lei-xing-dai-ni-gao-/

【背包】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.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/solution/mian-shi-ti-59-i-hua-dong-chuang-kou-de-zui-da-1-6/

【约瑟夫环问题】https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/solution/huan-ge-jiao-du-ju-li-jie-jue-yue-se-fu-huan-by-as/

【摩尔投票】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/

【并查集】https://leetcode-cn.com/problems/evaluate-division/solution/399-chu-fa-qiu-zhi-nan-du-zhong-deng-286-w45d/

【位操作】https://leetcode-cn.com/problems/power-of-two/solution/5chong-jie-fa-ni-ying-gai-bei-xia-de-wei-6x9m/

【二分】https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/solution/gong-shui-san-xie-er-fen-san-fen-cha-zhi-5gfv/

【二分模板(重点)】https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/tu-jie-er-fen-zui-qing-xi-yi-dong-de-jia-ddvc/


这里是我根据自己的个人情况整理的刷题笔记,建议大家自己在刷题过程中整理出一套自己的笔记,有时间就看看,多练练相关的题。


刷题的常见问题:

  1. 刷题经常要看答案怎么办?
  2. 看答案很正常,但看完后你要掌握这道题背后的套路,确保自己下次遇到同类型的题时有解题思路。我刷第一遍时基本上每道题都会看答案,无论自己是不是AC。
  3. 刷过的题经常忘怎么办?
  4. 那肯定是你没掌握它背后的套路,多刷多练多总结吧。当然,也有很多题是没有套路的,完全智力题,这时可以看看这道题的出题频率,不建议在这种低频高难度题上浪费太多精力,面试时很少考,即便考了你当做面试官SB就好了,又不是面试Google。
  5. 注意一点
  6. 不要看到这道题已经AC过,就不再做了,不要怕麻烦,即便你之前AC过,你现在也有思路,也建议再手敲刷一遍。面试时人一般都紧张,可能只能发挥出自己平时50%的水平,要孰能生巧,这样在面试时你才能应对的更自如。所以上面你别看我完成了468道题,但其实我可能AC了上千次,有些题刷了好多遍。你也可以每刷一轮题新建一个进度管理的tab。


以上是我刷题的一些经验分享,希望对大家有帮助。

这里也分享下leetcode大佬的刷题方法论:https://leetcode.cn/circle/discuss/jq9Zke/



0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
程序喵
下载 APP