掌握 LeetCode 刷题方法再开始刷题,属于磨刀不误砍柴工。掌握正确方法是非常重要的。
如果你在刷题的时候发现怎么也写不出来,别担心,这是正常的。如果你还发现,之前明明刷过的题,过段时间再做的时候,自己还是不会。别担心,这也是正常的。
在这我分享一下我的刷题经验,希望对你有帮助。如果你时间比较紧迫,为了找工作而刷题,我建议你先刷热门推荐,一共两百多道题。
在 LeetCode中文版 页面的右侧。先刷热题 HOT 100,再刷精选 TOP 面试题,之后刷其他的题。
如果你时间比较充裕,那我建议你:
- 按从低到高的难度分组刷
- 按 tag 分类刷
- 定期复习,重做之前刷过的题
刷题方法:
第一遍:可以先思考,之后看参考答案刷,结合其他人的题解刷。思考、总结并掌握本题的类型,思考方式,最优题解。
第二遍:先思考,回忆最优解法,并与之前自己写过的解答作比对,总结问题和方法。
第三遍:提升刷题速度,拿出一个题,就能够知道其考察重点,解题方法,在短时间内写出解答。
定期总结:
- 按照题目类型进行总结:针对一类问题,总结有哪些解题方法,哪种方法是最优的,为什么。
- 总结重点:有些题你刷了好多遍都还是不会,那就要重点关注,多思考解决方法,不断练习强化
结合图解刷题:
有些人认为刷题比较枯燥,比较抽象。那你可以结合动画图解刷题。
在此以简单的排序算法为例:
单单排序算法就可以分为以下十种:
例如基础的冒泡排序法演示如下:
选择排序法:
插入排序法:
希尔排序法:
归并排序法:
快速排序法:
堆排序:
计数排序:
桶排序:
基数排序:
推荐一些免费的学习资源:
在学习的时候,要想为什么要这样设计,优点在哪里,有什么改进方法,逐步通过这样的方式提升逻辑思维能力。不懂就查,找学习资料和相关解答,坚持学习。
1. 算法学习 LintCode:https://www.lintcode.com/
算法学习网站,上去每天刷两道算法题,走遍天下都不怕。
2. 算法学习 LeetCode:https://leetcode.com/
也是算法题网站,同上。
3. 算法学习 LeetCode 中文站:https://leetcode-cn.com/
这个是上面算法题网站的中文站点,英文不好的可以刷这个,英文好的推荐去刷英文网站的题目,还能提升英语能力。
4. 中国大学MOOC网:https://www.icourse163.org/
中国大学MOOC是由网易与高教社携手推出的在线教育平台,承接教育部国家精品开放课程任务,向大众提供中国知名高校的MOOC课程。在这里,每一个有意愿提升自己的人都可以免费获得更优质的高等教育。
推荐一个用动画的形式演示 LeetCode 上的题目的项目: