LeetCode如何学习-摘录

418 阅读1分钟

LeetCode学习

一、题目类型

主要算法:

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

数据结构:

  1. 数组和链表:单/双向链表
  2. 栈与队列
  3. 哈希表
  4. 堆:最大堆/最小堆
  5. 树与图:最近公共优先、并查集
  6. 字符串:前缀树(字典树)/后缀树 (图片来自leetcode)

二、总结并记忆推荐使用anki,是一个使记忆变得容易的学习软件,用它来安排复习时间

三、刷题建议

  1. 方法1:第一遍按tag刷,第二遍一题多解,多题同解
  2. 方法2:如果是为了找工作二刷题:先刷热题 HOT 100,再刷精选 TOP 面试题
  3. 方法3:如果时间足够: (1)按从低到高的难度分组刷 (2)按 tag 分类刷 (3)定期复习,重做之前刷过的题

四、刷题方法

  1. 第一遍:可以先思考,之后看参考答案刷,结合其他人的题解刷。思考、总结并掌握本题的类型,思考方式,最优题解。
  2. 第二遍:先思考,回忆最优解法,并与之前自己写过的解答作比对,总结问题和方法。
  3. 提升刷题速度,拿出一个题,就能够知道其考察重点,解题方法,在短时间内写出解答。

五、GitGub

  1. 使用动画来呈现解LeetCode题目的思路:github.com/MisterBooo/…
  2. lucifer小哥哥:github.com/azl39798585…