居然坚持下来了噢 加油 继续叭 还需要多刷几遍继续巩固
数组
- 二分法
- 双指针法
- 滑动窗口(*)
- 循环不变量
链表
- 虚拟头结点
- 增删查改
- 反转
- 环形链表(*)
哈希表
- 用来快速判断一个元素是否出现集合里
- 数组、set、map
- 两数之和(*)
字符串
- 双指针法
- KMP
双指针法
- 数组、字符串、链表、N数之和(*)
栈与队列
- 括号匹配
- 字符串
- 逆波兰表达式
- 求滑动窗口最大值(*)
- 求前 K 个高频元素(*)
二叉树
- 遍历方式
- 深度、高度、平衡、路径
- 修改与构造
- 公共祖先问题(*)
- 二叉搜索树的属性
- 二叉搜索树的修改与构造
回溯
- 子集问题
- 排列问题
- 组合问题
- N皇后问题(*)
- 数独问题(*)
贪心(*)
- 局部最优、全剧最优
动态规划(*)
- 五步
- 确定dp数组(dp table)以及下标的含义
- 确定递推公式
- dp数组如何初始化
- 确定遍历顺序
- 举例推导dp数组
- 背包问题系列
- 打家劫舍系列
- 股票系列
- 子序列系列
单调栈(*)
- 要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置
Just do it. Time will give the answer.