lucifer

我就是那个 @量子位 答案里面提到的“lucifer 小哥哥”。

我本人从开始准备算法以来,大概经过了几个月的时间,这期间自己成长了很多,从刷题菜鸡,到现在对刷题套路,题型有了自己的理解,感受还是蛮多的。我本人不是算法高手,算是勤能补拙类型。不过经过几个月的学习和练习,不仅面试变得更加得心应手,而且在工作中写更容易写出干净优雅,性能好的代码。

我将自己这几个月的刷题经历都整理了下来,除了给出思路和关键点,还横向地对知识点进行整理,尽量做到一题多解,多题同解。 现在 GitHub 仓库有 18k+的 ✨ , 欢迎大家关注。仓库地址: azl397985856/leetcode

那么今天我就来回答一下这个问题,谈一下我是怎么刷leetcode的

对于我来说,刷题的过程其实就是学习数据结构和算法的过程, 不仅仅是为了刷题而刷题,这样你才能感受到刷题的乐趣

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

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

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

但是很多人做了几遍,碰到新题还是没有任何头绪,这是一个常见的问题,这怎么办呢? 我们继续往下看。

艾宾浩斯记忆曲线

总结并记忆是学习以及刷题过程中非常重要的一环,
不管哪个阶段,我们都需要做对应的总结,这样将来我们再回过头看的时候,才能够快读拾起来。

信息输入大脑后,遗忘也就随之开始了。遗忘率随时间的流逝而先快后慢,特别是在刚刚识记的短时间里,遗忘最快,这就是著名的艾宾浩斯遗忘曲线。

anki 就是根据艾宾浩斯记忆曲线开发的一个软件,它是一个使记忆变得容易的学习软件。因为它是一个自定义多功能的记忆方式,可以大大减少你的学习时间,也可以大大提高 你的学习容量。 对于我本人而言,我在 anki 里面写了很多 leetcode 题目和套路的 Card,然后 anki 会自动帮我安排复习时间,大大减少我的认知负担,提高了我的复习效率。

这个是我的anki card 大家可以直接导入使用,但是还是建议大家自己制作卡片,毕竟每个人情况不一样,并且制作卡片的过程也是记忆的过程。

使用方法:

anki - 文件 - 导入 - 下拉格式选择“打包的 anki 集合”,然后选中你下载好的文件,确定即可。

更多关于 anki 使用方法的请查看anki 官网

目前已更新卡片一览(仅列举正面)

  • 二分法解决问题的关键点是什么,相关问题有哪些?
  • 如何用栈的特点来简化操作, 涉及到的题目有哪些?
  • 双指针问题的思路以及相关题目有哪些?
  • 滑动窗口问题的思路以及相关题目有哪些?
  • 回溯法解题的思路以及相关题目有哪些?
  • 数论解决问题的关键点是什么,相关问题有哪些?
  • 位运算解决问题的关键点是什么,相关问题有哪些?

殊途同归

大家刷了很多题之后,就会发现来来回回,题目就那么几种类型,因此掌握已有题目类型是多么重要。那样 leetcode 出题的老师,很多也是在原有的题目基础上做了适当扩展(比如 two-sum,two-sum2,three-sum, four-sum 等等)或者改造(使得不那么一下子看出问题的本质,比如猴子吃香蕉问题)。

其中算法,主要是以下几种:

  • 基础技巧:分治、二分、贪心
  • 排序算法:快速排序、归并排序、计数排序
  • 搜索算法:回溯、递归、深度优先遍历,广度优先遍历,二叉搜索树等
  • 图论:最短路径、最小生成树
  • 动态规划:背包问题、最长子序列

数据结构,主要有如下几种:

  • 数组与链表:单 / 双向链表
  • 栈与队列
  • 哈希表
  • 堆:最大堆 / 最小堆
  • 树与图:最近公共祖先、并查集
  • 字符串:前缀树(字典树) / 后缀树


(图片来自 leetcode)

坚持

做到了以上几点,我们还需要坚持。这个其实是最难的,不管做什么事情,坚持都是最重要也是最难的。

为了督促自己,同时帮助大家成长,我在群里举办《每日一题》活动,每日一题是在交流群(包括微信和 qq)里进行的一种活动,大家一起 解一道题,这样讨论问题更加集中,会得到更多的反馈。而且 这些题目可以被记录下来,日后会进行筛选添加到仓库的题解模块。

大家如果发现自己很难坚持下去,也可以加入我的群聊,我们互相监督。 另外我还专门组建了 slack 群,有兴趣的可以加群后在群里喊即可。

关注我

大家可以关注我的公众号《脑洞前端》,公众号后台回复“大前端”,拉你进《大前端面试宝典 - 图解前端群》。回复“leetcode”,拉你进《leetcode 题解交流群》

最后祝大家刷题愉快,拿到自己心仪的 offer。


 评论


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 。
载入天数...载入时分秒...