刷题方法

刷题方法

别人的刷题方法

GitHub - azl397985856/leetcode: LeetCode Solutions: A Record of My Problem Solving Journey.( leetcode 题解,记录自己的 leetcode 解题之路。)

第一遍按 tag 刷,第二遍一题多解,多题同解

个人建议,第一遍刷的时候可以先快速按照 tag 过一遍,快速感受一下常见数据结构和算法的套路,这样自己有一个感性的认识。

第二遍我们就不能像第一遍那样了,这个阶段我们需要多个角度思考问题,尽量做到一题多解,多题同解。我们需要对问题的本质做一些深度的理解,将来碰到类似的问题我们才能够触类旁通。

同时使用 anki 对刷过的题进行复习,坚持最重要


如果你时间比较紧迫,为了找工作而刷题,我建议你先刷热门推荐,一共两百多道题。

https://leetcode-cn.com/problemset/all/ 页面的右侧。先刷热题 HOT 100,再刷精选 TOP 面试题,之后刷其他的题。

如果你时间比较充裕,那我建议你:

刷题方法:

定期总结:


这 500+ 题不是简单的刷一遍就过去的,而是反复练习,直到代码最优,解法最优(有时候甚至觉得自己的代码精简到一个符号都无法减少的地步)。所以有时候面试官问问题,问题还没说完,我就知道应该如何表述自己的心路历程,然后慢慢地给出最优解。

而这一切的关键就在于:做笔记!

对于遇到的每个题目,事后我都做上标记:普通题目,难题、好题。此外,每个题目都分为以下几个步骤做好详细的笔记:

  1. 原题目

  2. 自己的第一遍解法

  3. 网上好的解法

  4. 自己可以改进的地方

  5. 进一步精简优化自己的代码直至代码简无可简(这是非常关键的一步,到达这一步,才会发现获得能力的提升远远要超过简单地把题目解出来

  6. 获得的思考(或者学习到的地方,可以是算法、数据结构或者 Java 的特性—例如 Stream 等等)

不断地学习别人的代码,改进自己的代码,不断地锤炼自己的代码,直至算法最优化,代码最简洁!潜移默化中,不仅对题目解法有了更深刻的理解(什么是最优解),而且也知道如何用最简洁的代码实现这个最优解。

这个方法最具参考价值


刷题要趁早

刷题入门的时候,找找身边已经刷得不错的人带一下,确定自己的节奏

目标,按照分类刷题

如果你能找到一起刷题的小伙伴,一定要组队(我就只能找群了),最好是英语小组

尽量多出去面试

如果题目不会,记得抄答案

算法面试过程中,题目类型多,数量大。大家都不可避免的会在 LeetCode 上进行训练。但问题是,题目杂,而且已经超过 1300+ 道题。全部刷完且掌握,不是一件容易的事情。那我们应该怎么办呢?

找规律,总结才是制胜法宝


建议优先按题目 tag 刷题easy >> medium >> hard

总结了很多常用的算法模板和套路

精刷是很有必要的。300 题刷 2 遍吃透要好过 600 题只刷一遍。

关于刷题的强度。一天一道题这种节奏很难坚持下来,也很难总结出套路和模板。有条件的一定要集中时间刷

如果你发现可以用 oi 或者 acm 的高级算法解面试题,那么多半是你想多了

周赛可以看大神的解法


https://zhuanlan.zhihu.com/p/96883783#

难度要循序渐进

按算法分类来选题

选择题目,除了在难度上要循序渐进,还建议在算法上进行划分。

基本的算法数据结构是有限的。比如说链表,二叉树,二分查找,动态规划,哈希表。。。

我喜欢按算法的分类来选题和刷题,比如一个时间段,只刷链表题,待刷得差不多的时候,接下来再刷二叉树的题。。。

解题的时候,建议按这三个步骤来

1,看懂题目

2,分析,推导解法

3,将思路转换为代码。


我的总结

每天早上一个小时的时间用来刷算法,养成习惯,让刷算法题成为自己的生活习惯。每天至少走三道题吧。

先刷完一个标签的简单难度,然后再刷下一个标签的简单难度,刷完之后再回头按标签刷中等难度,以此类推。最后刷热题 HOT 100,再刷精选 TOP 面试题,

刷完一道题,总结,然后记录到 AnKi 中,问题就是题干的概括,答案是这个问题类别(标签),解题过程中的精髓点,关键点,最优解,一定要简短,不要搞得跟完全解析一样。老是记不住的题,要反复练习。

做题之前

  1. 看懂题目

  2. 分析,推导解法,确定 tag,套模板,套规律,这一步给自己 10 分钟

  3. 将思路转换为代码

  4. 实在不会,就抄答案

做题之后,做笔记

在这个过程中,找到最优解,在这个找到最优解的过程中收获会非常大,

同时,记得找同一 tag 的题的规律,这个 tag 的题,有哪些解题方法,哪种方法是最优的,找规律,找套路,总结套路和模板,这才是刷题的目的