我是如何刷 LeetCode 的?

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

我本人从开始准备算法以来,大概通过了几个月的时间,这期间本身成长了不少,从刷题菜鸡,到如今对刷题套路,题型有了本身的理解,感觉仍是蛮多的。我本人不是算法高手,算是勤能补拙类型。不过通过几个月的学习和练习,不只面试变得更加驾轻就熟,并且在工做中写更容易写出干净优雅,性能好的代码。git

我将本身这几个月的刷题经历都整理了下来,除了给出思路和关键点,还横向地对知识点进行整理,尽可能作到一题多解,多题同解。 如今GitHub仓库有18k+的✨ , 欢迎你们关注。仓库地址: azl397985856/leetcodegithub

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

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

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

我的建议,第一遍刷的时候能够先快速按照tag过一遍,快速感觉一下常见数据结构和算法的套路,这样本身有一个感性的认识。算法

第二遍咱们就不能像第一遍那样了,这个阶段咱们须要多个角度思考问题,尽可能作到一题多解,多题同解。咱们须要对问题的本质作一些深度的理解,未来碰到相似的问题咱们才可以举一反三。数组

可是不少人作了几遍,碰到新题仍是没有任何头绪,这是一个常见的问题,这怎么办呢? 咱们继续往下看。微信

艾宾浩斯记忆曲线

总结并记忆是学习以及刷题过程当中很是重要的一环, 无论哪一个阶段,咱们都须要作对应的总结,这样未来咱们再回过头看的时候,才可以快读拾起来。数据结构

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

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。

相关文章
相关标签/搜索