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
按照不同的类型来刷
- Pattern: Sliding window,滑动窗口类型
- Pattern: two points, 双指针类型
- Pattern: Fast & Slow pointers, 快慢指针类型
- Pattern: Merge Intervals,区间合并类型
- Pattern: Cyclic Sort,循环排序
详情见知乎:https://www.zhihu.com/question/36738189/answer/908664455
我的刷题计划
初期计划
对于入门小白,我打算先把HOT 100按照顺序刷完,并把每题按照Tags分类,刷完之后,依照Tags做一个总结。同时每天记录一下自己刷的题。