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