主题系列
排序
合并
数据结构构造
括号系列
字符串系列
字符串匹配
[[28][简单] 字符串匹配](/Algorithm/字符串/28-实现strStr().md)
最X系列
公共子序列/子串
回文
数组
最X系列
最长递增子序列(LIS)
最长公共子序列(LCS)
前缀和
数字定位
数字缺失
出现次数
矩阵
有序二维矩阵
四方向搜索
岛屿类问题
路径到达方案
买卖股票的最佳时机系列
原地操作
逆向思维系列
数学
中位数
规律题
限定迭代范围
幂系列
丑数系列
N数之和
极小化极大值
数据流
遍历技巧
外层到内层
哨兵技巧
链表
dummy节点
栈
比较大小, 防止越界
指定数据结构系列
树
树的遍历
前序应用
中序应用
后序应用
层序应用
二叉树与栈
二叉树左右子树递归
二叉树的遍历
平衡树
搜索树
树的路径
最X系列
栈
单调栈
对于寻找最近一个比当前值小大/小的问题, 都可以使用单调栈来解决.
运算过程实现
哈希
原地哈希
链表
链表反转
删除重复元素
指定算法系列
回溯
递归生成
动态规划
背包问题
01背包问题
完全背包问题
完全背包问题, 由于状态转移方程, 要遍历多个位置取最值, 因此经常可以转化成遍历的问题, 使用DFS或BFS的思路进行解决.
多维背包
带有放入顺序限制的背包
放入物品的顺序如果有限制, 一般会先循环背包限制, 再循环每种物品, 因为放入顺序会产生影响的物品, 一般都是特殊的物品, 状态转移需要每种物品单独考虑:
滑动窗口
双指针
快慢指针
前后指针
左右指针
双链表
二分图
[22][中等][回溯][BFS] 括号生成
[32][困难][动态规划][栈] 最长有效括号
[10][困难][动态规划] 正则表达式匹配
[44][困难][动态规划][01背包] 通配符匹配
[97][困难][动态规划][DFS][BFS] 交错字符串
[115][困难][动态规划] 不同的子序列
[5][中等][动态规划] 最长回文子串
[115][困难][动态规划] 不同的子序列
[1143][中等][动态规划] 最长公共子序列
[5][中等][动态规划] 最长回文子串
[131][中等][DFS][回溯][动态规划] 分割回文串
[132][困难][DFS][回溯][动态规划] 分割回文串 II
[516][中等][动态规划] 最长回文子序列
[647][中等][动态规划] 回文子串
[53][简单][动态规划][分治] 最大子序和
[300][中等][贪心][二分][动态规划][树状数组] 最长上升子序列
[873][中等][动态规划] 最长的斐波那契子序列的长度
[718][中等][动态规划][滑动窗口] 最长重复子数组
[1143][中等][动态规划] 最长公共子序列
[1035][中等][动态规划] 不相交的线
[713][中等][二分][双指针] 乘积小于K的子数组
[41][困难][原地哈希] 缺失的第一个正数
[378][中等][堆][二分] 有序矩阵中第K小的元素
[剑指Offer-04][简单] 二维数组中的查找
[97][困难][动态规划][DFS][BFS] 交错字符串
[312][困难][分治][递归][动态规划] 戳气球
[4][困难][二分][双指针] 寻找两个正序数组的中位数
[295][困难][二分][堆] 数据流的中位数
[264][中等][动态规划][三指针][堆] 丑数 II
[231][简单] 2的幂
[342][简单] 4的幂
[263][简单][回溯] 丑数
[264][中等][动态规划][三指针][堆] 丑数 II
[313][中等][堆] 超级丑数
[15][简单][三指针] 三数之和
[167][简单][双指针][二分] 两数之和 II - 输入有序数组
[295][困难][二分][堆] 数据流的中位数
[82][中等][DFS] 删除排序链表中的重复元素 II
[剑指Offer-36][中等] 二叉搜索树与双向链表
[剑指Offer-33][中等][分治] 二叉搜索树的后序遍历序列
[297][困难][BFS] 二叉树的序列化与反序列化
[95][中等][递归] 不同的二叉搜索树 II
[96][中等][动态规划] 不同的二叉搜索树
[297][困难][BFS] 二叉树的序列化与反序列化
[剑指Offer-33][中等][分治] 二叉搜索树的后序遍历序列
[112][简单][BFS][DFS] 路径总和
[113][中等][DFS] 路径总和 II
[129][中等][DFS] 求根到叶子节点数字之和
[988][中等][DFS] 从叶结点开始的最小字符串
[124][困难][DFS] 二叉树中的最大路径和
[687][简单][DFS] 最长同值路径
[236][中等][DFS] 二叉搜索树的最近公共祖先
[41][困难][原地哈希] 缺失的第一个正数
[206][简单][递归][双指针] 反转链表
[83][简单][双指针][DFS] 删除排序链表中的重复元素
[82][中等][DFS] 删除排序链表中的重复元素 II
[22][中等][回溯][BFS] 括号生成
[10][困难][动态规划] 正则表达式匹配
[44][困难][动态规划][背包] 通配符匹配
[3][中等][滑动窗口] 无重复字符的最长子串
[239][困难][队列] 滑动窗口最大值
[141][简单][双指针] 环形链表
[142][中等][双指针] 环形链表 II
[287][中等][双指针][二分] 寻找重复数
[713][中等][二分][双指针] 乘积小于K的子数组
[160][简单][双指针] 相交链表
[785][中等][BFS][DFS][并查集] 判断二分图
[88][简单][双指针] 合并两个有序数组