LeetCode刷题之旅

Free Talk

看着身边很多朋友都陆陆续续入坑LeetCode,博主也打算开启自己的LeetCode之旅。
现在是先定一个小目标,一天先刷一道题,后面再慢慢地增加。
So Study with me📖!

刷题路线

Tags

  • 数组、链表
    包含基本排序算法、二分查找、链表的一系列操作。
  • 栈、队列、堆
    利用栈、队列互相实现,堆的使用
  • 二叉树与图
    主要是遍历算法和节点的计算:二叉树四种遍历方式、广度优先遍历(BFS)和广度优先遍历(DFS),节点到节点距离等等。
  • 哈希表
    使用标准库自带的模板或者函数就很简单了,一般会与其它数据结构相结合来提升时间复杂度。
  • 字符串
    操作字符串的操作也很多,本质上可以看作是数组的操作。另外字符串的一些匹配和寻求字串的算法还是非常具有思考价值的。KMP,马拉车等等。
  • 递归
    重点掌握边界判断条件。
  • 回溯
    重点掌握边界判断条件。
  • 分治
    重点掌握如何划分子问题。
  • 动态规划
    题太多了,可从一阶dp到二阶dp理解不同的状态方程。
  • 贪心及其它
    这个就很容易理解了,遇到贪心题应该要偷笑了。

来源:https://www.zhihu.com/question/36738189/answer/1004876884

HOT 100

官网:https://leetcode-cn.com/problemset/hot-100/

Easy-Medium-Hard

先按照复习的Tags来刷,在Tags里按照难度来刷
数据结构与算法
数据结构与算法

Type

按照不同的类型来刷

  1. Pattern: Sliding window,滑动窗口类型
  2. Pattern: two points, 双指针类型
  3. Pattern: Fast & Slow pointers, 快慢指针类型
  4. Pattern: Merge Intervals,区间合并类型
  5. Pattern: Cyclic Sort,循环排序

详情见知乎:https://www.zhihu.com/question/36738189/answer/908664455

我的刷题计划

初期计划

对于入门小白,我打算先把HOT 100按照顺序刷完,并把每题按照Tags分类,刷完之后,依照Tags做一个总结。同时每天记录一下自己刷的题。