> For the complete documentation index, see [llms.txt](https://kerasnoone.gitbook.io/garnet/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kerasnoone.gitbook.io/garnet/suan-fa/leetcode-gui-lei.md).

# Leetcode归类

## 主题系列

### 排序

* [\[148\]\[中等\]\[插入\]\[归并\] 排序链表](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/链表/148-排序链表.md)

### 合并

* [\[88\]\[简单\]\[双指针\] 合并两个有序数组](broken://pages/-McTyQxG2wCHpBGe6KVM)
* [\[23\]\[困难\]\[堆\] 合并K个排序链表](/garnet/suan-fa/lian-biao/23-he-bingkge-pai-xu-lian-biao.md)

### 数据结构构造

* [\[155\]\[简单\]\[栈\]\[滑动窗口\] 最小栈](/garnet/suan-fa/zhan/155-zui-xiao-zhan.md)
* [\[225\]\[简单\]\[栈\]\[队列\] 用队列实现栈](/garnet/suan-fa/dui-lie/225-yong-dui-lie-shi-xian-zhan.md)
* [\[232\]\[简单\]\[栈\]\[队列\] 用栈实现队列](/garnet/suan-fa/zhan/232-yong-zhan-shi-xian-dui-lie.md)
* [\[380\]\[中等\]\[哈希表\] 常数时间插入、删除和获取随机元素](/garnet/suan-fa/ha-xi-biao/380-chang-shu-shi-jian-cha-ru-shan-chu-he-huo-qu-sui-ji-yuan-su.md)
* [\[622\]\[中等\] 设计循环队列](/garnet/suan-fa/dui-lie/622-she-ji-xun-huan-dui-lie.md)
* [\[641\]\[中等\] 设计循环双端队列](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/数据结构设计/641-设计循环双端队列.md)
* [\[895\]\[困难\]\[栈\]\[哈希\] 最大频率栈](/garnet/suan-fa/zhan/895-zui-da-pin-shuai-zhan.md)
* [\[剑指Offer-59-II\]\[中等\]\[滑动窗口\] 队列的最大值](/garnet/suan-fa/dui-lie/jian-zhi-offer59ii-dui-lie-de-zui-da-zhi.md)
* [\[面试题 03.05\]\[中等\] 栈排序](/garnet/suan-fa/zhan/03.05-zhan-pai-xu.md)

### 括号系列

* [\[22\]\[中等\]\[回溯\]\[BFS\] 括号生成](broken://pages/-McTyQv1vyusrXYa4XZE)
* [\[32\]\[困难\]\[动态规划\]\[栈\] 最长有效括号](broken://pages/-McTyQvogLDRxcDQkm8z)

### 字符串系列

#### 字符串匹配

* [\[10\]\[困难\]\[动态规划\] 正则表达式匹配](broken://pages/-McTyQvnIvaldp0VVuFd)
* \[\[28]\[简单] 字符串匹配]\(/Algorithm/字符串/28-实现strStr().md)
* [\[44\]\[困难\]\[动态规划\]\[01背包\] 通配符匹配](broken://pages/-McTyQvph1Dyxgf6gw3K)
* [\[97\]\[困难\]\[动态规划\]\[DFS\]\[BFS\] 交错字符串](broken://pages/-McTyQvvsLWF2wANNCmn)
* [\[115\]\[困难\]\[动态规划\] 不同的子序列](broken://pages/-McTyQvwysMTHR5iwuhq)
* [\[459\]\[简单\] 重复的子字符串](/garnet/suan-fa/zi-fu-chuan/459-zhong-fu-de-zi-zi-fu-chuan.md)
* [\[面试题 16.18\]\[中等\] 模式匹配](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/Algorithm/字符串/16.18-模式匹配.md)

#### 最X系列

* [\[5\]\[中等\]\[动态规划\] 最长回文子串](broken://pages/-McTyQvmA-SqxMnYgWM5)

#### 公共子序列/子串

* [\[115\]\[困难\]\[动态规划\] 不同的子序列](broken://pages/-McTyQvwysMTHR5iwuhq)
* [\[1143\]\[中等\]\[动态规划\] 最长公共子序列](broken://pages/-McTyQwTOJ8wFAakr71x)
* [\[392\]\[简单\]\[二分\] 判断子序列](/garnet/suan-fa/er-fen/392-pan-duan-zi-xu-lie.md)
* [\[72\]\[困难\]\[动态规划\] 编辑距离](/garnet/suan-fa/dong-tai-gui-hua/72-bian-ji-ju-li.md)

#### 回文

* [\[5\]\[中等\]\[动态规划\] 最长回文子串](broken://pages/-McTyQvmA-SqxMnYgWM5)
* [\[131\]\[中等\]\[DFS\]\[回溯\]\[动态规划\] 分割回文串](broken://pages/-McTyQw0dYzarH-0BOmZ)
* [\[132\]\[困难\]\[DFS\]\[回溯\]\[动态规划\] 分割回文串 II](broken://pages/-McTyQw1t1YqM6j_4vnR)
* [\[516\]\[中等\]\[动态规划\] 最长回文子序列](broken://pages/-McTyQwHmNtNU2IMSPdq)
* [\[647\]\[中等\]\[动态规划\] 回文子串](broken://pages/-McTyQwJ9jTA_1ZK6MA0)

### 数组

#### 最X系列

* [\[53\]\[简单\]\[动态规划\]\[分治\] 最大子序和](broken://pages/-McTyQvFGZ0h80GXUWed)

#### 最长递增子序列(LIS)

动态规划解法合集: [穿上衣服我就不认识你了？来聊聊最长上升子序列](https://lucifer.ren/blog/2020/06/20/LIS/)

* [\[674\]\[简单\]\[动态规划\] 最长连续递增序列](/garnet/suan-fa/shu-zu/674-zui-chang-lian-xu-di-zeng-xu-lie.md)
* [\[300\]\[中等\]\[贪心\]\[二分\]\[动态规划\]\[树状数组\] 最长上升子序列](broken://pages/-McTyQxyDXsZA9tuuwhN)
* [\[673\]\[中等\]\[动态规划\]\[贪心\] 最长递增子序列的个数](/garnet/suan-fa/shu-zu/673-zui-chang-di-zeng-zi-xu-lie-de-ge-shu.md)
* [\[354\]\[困难\]\[贪心\]\[动态规划\] 俄罗斯套娃信封问题](/garnet/suan-fa/shu-zu/354-e-luo-si-tao-wa-xin-feng-wen-ti.md)
* [\[435\]\[中等\]\[贪心\]\[动态规划\] 无重叠区间](/garnet/suan-fa/shu-zu/435-wu-zhong-die-qu-jian.md)
* [\[452\]\[中等\]\[贪心\]\[动态规划\] 用最少数量的箭引爆气球](/garnet/suan-fa/shu-zu/452-yong-zui-shao-shu-liang-de-jian-yin-bao-qi-qiu.md)
* [\[491\]\[中等\]\[DFS\] 递增子序列](/garnet/suan-fa/shu-zu/491-di-zeng-zi-xu-lie.md)
* [\[646\]\[中等\]\[贪心\]\[动态规划\] 最长数对链](/garnet/suan-fa/shu-zu/646-zui-chang-shu-dui-lian.md)
* [\[873\]\[中等\]\[动态规划\] 最长的斐波那契子序列的长度](broken://pages/-McTyQwNajYTTdP0nPCG)

#### 最长公共子序列(LCS)

* [\[718\]\[中等\]\[动态规划\]\[滑动窗口\] 最长重复子数组](broken://pages/-McTyQxa5sXzucO5C-E4)
* [\[1143\]\[中等\]\[动态规划\] 最长公共子序列](broken://pages/-McTyQwTOJ8wFAakr71x)
* [\[1035\]\[中等\]\[动态规划\] 不相交的线](broken://pages/-McTyQwR8HODBZ1kezXI)
* [\[712\]\[中等\]\[动态规划\] 两个字符串的最小ASCII删除和](/garnet/suan-fa/dong-tai-gui-hua/712-liang-ge-zi-fu-chuan-de-zui-xiao-ascii-shan-chu-he.md)

#### 前缀和

* [\[523\]\[中等\]\[前缀和\]\[哈希\] 连续的子数组和](/garnet/suan-fa/shu-zu/523-lian-xu-de-zi-shu-zu-he.md)
* [\[560\]\[中等\]\[前缀和\]\[哈希\] 和为K的子数组](/garnet/suan-fa/shu-zu/560-he-weikde-zi-shu-zu.md)
* [\[713\]\[中等\]\[二分\]\[双指针\] 乘积小于K的子数组](broken://pages/-McTyQx_m7ntR2GponoN)
* [\[974\]\[中等\]\[前缀和\]\[哈希\] 和可被K整除的子数组](/garnet/suan-fa/shu-zu/974-he-ke-beikzheng-chu-de-zi-shu-zu.md)
* [\[437\]\[中等\]\[DFS\]\[前缀和\] 路径总和 III](/garnet/suan-fa/shu/437-lu-jing-zong-he-iii.md)

#### 数字定位

* [\[34\]\[中等\]\[二分\] 在排序数组中查找元素的第一个和最后一个位置](/garnet/suan-fa/er-fen/34-zai-pai-xu-shu-zu-zhong-cha-zhao-yuan-su-de-di-yi-ge-he-zui-hou-yi-ge-wei-zhi.md)
* [\[658\]\[中等\]\[二分\] 找到 K 个最接近的元素](/garnet/suan-fa/er-fen/658-zhao-daokge-zui-jie-jin-de-yuan-su.md)

#### 数字缺失

* [\[41\]\[困难\]\[原地哈希\] 缺失的第一个正数](broken://pages/-McTyQxvuc0XU8Ls4y0V)
* [\[268\]\[简单\] 缺失数字](/garnet/suan-fa/wei-yun-suan/268-que-shi-shu-zi.md)
* [\[剑指Offer-53-II\]\[简单\]\[二分\] 0～n-1中缺失的数字](/garnet/suan-fa/er-fen/jian-zhi-offer53ii0n1-zhong-que-shi-de-shu-zi.md)

#### 出现次数

* [\[136\]\[简单\] 只出现一次的数字](/garnet/suan-fa/wei-yun-suan/136-zhi-chu-xian-yi-ci-de-shu-zi.md)
* [\[137\]\[中等\] 只出现一次的数字 II](/garnet/suan-fa/wei-yun-suan/137-zhi-chu-xian-yi-ci-de-shu-zi-ii.md)
* [\[260\]\[中等\] 只出现一次的数字 III](/garnet/suan-fa/wei-yun-suan/260-zhi-chu-xian-yi-ci-de-shu-zi-iii.md)
* [\[剑指Offer-56-I\]\[中等\]\[双指针\] 数组中数字出现的次数](/garnet/suan-fa/wei-yun-suan/jian-zhi-offer56i-shu-zu-zhong-shu-zi-chu-xian-de-ci-shu.md)

### 矩阵

#### 有序二维矩阵

* [\[378\]\[中等\]\[堆\]\[二分\] 有序矩阵中第K小的元素](broken://pages/-McTyQwggZw_TCjAPdZi)
* [\[剑指Offer-04\]\[简单\] 二维数组中的查找](broken://pages/-McTyQtSyeLy51Rdj645)

#### 四方向搜索

* [\[130\]\[中等\]\[并查集\]\[DFS\] 被围绕的区域](/garnet/suan-fa/bing-cha-ji/130-bei-wei-rao-de-qu-yu.md)
* [\[剑指Offer-12\]\[中等\]\[DFS\] 矩阵中的路径](/garnet/suan-fa/dfs/jian-zhi-offer12-ju-zhen-zhong-de-lu-jing.md)
* [\[剑指Offer-13\]\[中等\]\[DFS\] 机器人的运动范围](/garnet/suan-fa/dfs/jian-zhi-offer13-ji-qi-ren-de-yun-dong-fan-wei.md)

**岛屿类问题**

* [\[200\]\[中等\]\[DFS\] 岛屿数量](/garnet/suan-fa/dfs/200-dao-yu-shu-liang.md)
* [\[463\]\[简单\]\[DFS\] 岛屿的周长](/garnet/suan-fa/dfs/463-dao-yu-de-zhou-chang.md)
* [\[695\]\[中等\]\[DFS\] 岛屿的最大面积](/garnet/suan-fa/dfs/695-dao-yu-de-zui-da-mian-ji.md)
* [\[827\]\[困难\]\[DFS\] 最大人工岛](/garnet/suan-fa/dfs/827-zui-da-ren-gong-dao.md)
* [\[1162\]\[中等\]\[BFS\] 地图分析](/garnet/suan-fa/bfs/1162-di-tu-fen-xi.md)

### 路径到达方案

* [\[62\]\[中等\]\[动态规划\] 不同路径](/garnet/suan-fa/dong-tai-gui-hua/62-bu-tong-lu-jing.md)
* [\[63\]\[中等\]\[动态规划\] 不同路径 II](/garnet/suan-fa/dong-tai-gui-hua/63-bu-tong-lu-jing-ii.md)
* [\[64\]\[中等\]\[动态规划\] 最小路径和](/garnet/suan-fa/dong-tai-gui-hua/64-zui-xiao-lu-jing-he.md)
* [\[97\]\[困难\]\[动态规划\]\[DFS\]\[BFS\] 交错字符串](broken://pages/-McTyQvvsLWF2wANNCmn)
* [\[174\]\[困难\]\[动态规划\] 地下城游戏](/garnet/suan-fa/dong-tai-gui-hua/174-di-xia-cheng-you-xi.md)

### 买卖股票的最佳时机系列

解法参考: [一个方法团灭 6 道股票问题](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/solution/yi-ge-fang-fa-tuan-mie-6-dao-gu-piao-wen-ti-by-l-3/)

* [\[121\]\[简单\]\[动态规划\] 买卖股票的最佳时机](/garnet/suan-fa/dong-tai-gui-hua/121-mai-mai-gu-piao-de-zui-jia-shi-ji.md)
* [\[122\]\[简单\]\[动态规划\] 买卖股票的最佳时机 II](/garnet/suan-fa/dong-tai-gui-hua/122-mai-mai-gu-piao-de-zui-jia-shi-ji-ii.md)
* [\[123\]\[困难\]\[动态规划\] 买卖股票的最佳时机 III](/garnet/suan-fa/dong-tai-gui-hua/123-mai-mai-gu-piao-de-zui-jia-shi-ji-iii.md)
* [\[188\]\[困难\]\[动态规划\] 买卖股票的最佳时机 IV](/garnet/suan-fa/dong-tai-gui-hua/188-mai-mai-gu-piao-de-zui-jia-shi-ji-iv.md)
* [\[309\]\[中等\]\[动态规划\] 最佳买卖股票时机含冷冻期](/garnet/suan-fa/dong-tai-gui-hua/309-zui-jia-mai-mai-gu-piao-shi-ji-han-leng-dong-qi.md)
* [\[714\]\[中等\]\[动态规划\] 买卖股票的最佳时机含手续费](/garnet/suan-fa/dong-tai-gui-hua/714-mai-mai-gu-piao-de-zui-jia-shi-ji-han-shou-xu-fei.md)

### 原地操作

* [\[73\]\[中等\] 矩阵置零](/garnet/suan-fa/shu-zu/73-ju-zhen-zhi-ling.md)
* [\[289\]\[中等\] 生命游戏](/garnet/suan-fa/shu-zu/289-sheng-ming-you-xi.md)

### 逆向思维系列

* [\[174\]\[困难\]\[动态规划\] 地下城游戏](/garnet/suan-fa/dong-tai-gui-hua/174-di-xia-cheng-you-xi.md)
* [\[312\]\[困难\]\[分治\]\[递归\]\[动态规划\] 戳气球](broken://pages/-McTyQw9WhSNXA57tOfS)

### 数学

#### 中位数

* [\[4\]\[困难\]\[二分\]\[双指针\] 寻找两个正序数组的中位数](broken://pages/-McTyQvLsiP2UEmzEa2O)
* [\[295\]\[困难\]\[二分\]\[堆\] 数据流的中位数](broken://pages/-McTyQwesqzP2RgGlVJz)
* [\[480\]\[困难\]\[堆\] 滑动窗口中位数](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/数学/480-滑动窗口中位数.md)

#### 规律题

* [\[233\]\[困难\] 数字1的个数](/garnet/suan-fa/shu-xue/233-shu-zi-1-de-ge-shu.md)
* [\[400\]\[中等\] 第N个数字](/garnet/suan-fa/shu-xue/400-dinge-shu-zi.md)
* [\[剑指Offer-62\]\[简单\] 圆圈中最后剩下的数字](/garnet/suan-fa/shu-xue/jian-zhi-offer62-yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi.md)

#### 限定迭代范围

* [\[264\]\[中等\]\[动态规划\]\[三指针\]\[堆\] 丑数 II](broken://pages/-McTyQxST__B1VdCNDXH)

#### 幂系列

* [\[50\]\[中等\]\[二分\] Pow(x, n)](/garnet/suan-fa/shu-xue/50-shu-zhi-de-zheng-shu-ci-fang.md)
* [\[231\]\[简单\] 2的幂](broken://pages/-McTyQxjK40IeEwlchRz)
* [\[326\]\[简单\] 3的幂](/garnet/suan-fa/shu-xue/3263-de-mi.md)
* [\[342\]\[简单\] 4的幂](broken://pages/-McTyQxnBvbqhm7Ymn3J)

#### 丑数系列

* [\[263\]\[简单\]\[回溯\] 丑数](broken://pages/-McTyQubR6jm0-sB3e2-)
* [\[264\]\[中等\]\[动态规划\]\[三指针\]\[堆\] 丑数 II](broken://pages/-McTyQxST__B1VdCNDXH)
* [\[313\]\[中等\]\[堆\] 超级丑数](broken://pages/-McTyQwfgyckAO8jtyUZ)

#### N数之和

* [\[1\]\[简单\]\[哈希\] 两数之和](/garnet/suan-fa/shu-zu/1-liang-shu-zhi-he.md)
* [\[15\]\[简单\]\[三指针\] 三数之和](broken://pages/-McTyQxRs4HgNF3yNIpb)
* [\[18\]\[中等\]\[双指针\] 四数之和](/garnet/suan-fa/shu-zu/18-si-shu-zhi-he.md)
* [\[167\]\[简单\]\[双指针\]\[二分\] 两数之和 II - 输入有序数组](broken://pages/-McTyQxLtzwlRZLv3qt6)

#### 极小化极大值

* [\[375\]\[中等\]\[动态规划\] 猜数字大小 II](/garnet/suan-fa/dong-tai-gui-hua/375-cai-shu-zi-da-xiao-ii.md)

### 数据流

* [\[295\]\[困难\]\[二分\]\[堆\] 数据流的中位数](broken://pages/-McTyQwesqzP2RgGlVJz)

### 遍历技巧

#### 外层到内层

* [\[54\]\[中等\] 螺旋矩阵](/garnet/suan-fa/shu-zu/54-luo-xuan-ju-zhen.md)

### 哨兵技巧

#### 链表

**dummy节点**

* [\[82\]\[中等\]\[DFS\] 删除排序链表中的重复元素 II](broken://pages/-McTyQuebDbyTaXsp1be)

#### 栈

**比较大小, 防止越界**

* [\[84\]\[困难\]\[栈\] 柱状图中最大的矩形](/garnet/suan-fa/zhan/84-zhu-zhuang-tu-zhong-zui-da-de-ju-xing.md)

## 指定数据结构系列

### 树

#### 树的遍历

[彻底吃透前中后序递归法（递归三部曲）和迭代法（不统一写法与统一写法）](https://leetcode-cn.com/problems/binary-tree-preorder-traversal/solution/dai-ma-sui-xiang-lu-chi-tou-qian-zhong-hou-xu-de-d/)

* [\[144\]\[中等\] 二叉树的前序遍历](/garnet/suan-fa/shu/144-er-cha-shu-de-qian-xu-bian-li.md)
* [\[94\]\[中等\] 二叉树的中序遍历](/garnet/suan-fa/shu/94-er-cha-shu-de-zhong-xu-bian-li.md)
* [\[145\]\[困难\] 二叉树的后序遍历](/garnet/suan-fa/shu/145-er-cha-shu-de-hou-xu-bian-li.md)
* [\[102\]\[中等\] 二叉树的层序遍历](/garnet/suan-fa/shu/102-er-cha-shu-de-ceng-xu-bian-li.md)

**前序应用**

* [\[114\]\[中等\]\[DFS\] 二叉树展开为链表](/garnet/suan-fa/shu/114-er-cha-shu-zhan-kai-wei-lian-biao.md)

**中序应用**

* [\[173\]\[中等\] 二叉搜索树迭代器](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/树/173-二叉搜索树迭代器.md)
* [\[面试题 04.06\]\[中等\]\[DFS\] 后继者](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/Algorithm/树/04.06-后继者.md)
* [\[剑指Offer-36\]\[中等\] 二叉搜索树与双向链表](broken://pages/-McTyQuBNM4JKBSJxQfF)
* [\[剑指Offer-54\]\[简单\] 二叉搜索树的第k大节点](/garnet/suan-fa/shu/jian-zhi-offer54-er-cha-sou-suo-shu-de-dikda-jie-dian.md)

**后序应用**

* [\[剑指Offer-33\]\[中等\]\[分治\] 二叉搜索树的后序遍历序列](broken://pages/-McTyQvIvSizuILpKsQW)

**层序应用**

* [\[297\]\[困难\]\[BFS\] 二叉树的序列化与反序列化](broken://pages/-McTyQv4a45bsQrxu1TS)

#### 二叉树与栈

* [\[331\]\[中等\]\[栈\] 验证二叉树的前序序列化](/garnet/suan-fa/zhan/331-yan-zheng-er-cha-shu-de-qian-xu-xu-lie-hua.md)

#### 二叉树左右子树递归

* [\[95\]\[中等\]\[递归\] 不同的二叉搜索树 II](broken://pages/-McTyQveKT-A8XlvCWpq)
* [\[96\]\[中等\]\[动态规划\] 不同的二叉搜索树](broken://pages/-McTyQvuz3IT4AtfaDzy)
* [\[241\]\[中等\]\[递归\] 为运算表达式设计优先级](/garnet/suan-fa/di-gui/241-wei-yun-suan-biao-da-shi-she-ji-you-xian-ji.md)

#### 二叉树的遍历

* [\[剑指Offer-07\]\[中等\]\[递归\] 重建二叉树](/garnet/suan-fa/shu/jian-zhi-offer07-zhong-jian-er-cha-shu.md)
* [\[297\]\[困难\]\[BFS\] 二叉树的序列化与反序列化](broken://pages/-McTyQv4a45bsQrxu1TS)

#### 平衡树

* [\[面试题 04.04\]\[简单\]\[DFS\] 检查平衡性](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/Algorithm/树/04.04-检查平衡性.md)

#### 搜索树

* [\[173\]\[中等\] 二叉搜索树迭代器](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/树/173-二叉搜索树迭代器.md)
* [\[235\]\[简单\] 二叉搜索树的最近公共祖先](/garnet/suan-fa/shu/235-er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian.md)
* [\[面试题 04.05\]\[中等\]\[DFS\] 合法二叉搜索树](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/Algorithm/树/04.05-合法二叉搜索树.md)
* [\[面试题 04.06\]\[中等\]\[DFS\] 后继者](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/Algorithm/树/04.06-后继者.md)
* [\[剑指Offer-33\]\[中等\]\[分治\] 二叉搜索树的后序遍历序列](broken://pages/-McTyQvIvSizuILpKsQW)
* [\[剑指Offer-54\]\[简单\] 二叉搜索树的第k大节点](/garnet/suan-fa/shu/jian-zhi-offer54-er-cha-sou-suo-shu-de-dikda-jie-dian.md)

#### 树的路径

* [\[112\]\[简单\]\[BFS\]\[DFS\] 路径总和](broken://pages/-McTyQv3jTQmj6oS-nNW)
* [\[113\]\[中等\]\[DFS\] 路径总和 II](broken://pages/-McTyQuklYipiplqWQdL)
* [\[437\]\[中等\]\[DFS\]\[前缀和\] 路径总和 III](/garnet/suan-fa/shu/437-lu-jing-zong-he-iii.md)
* [\[257\]\[简单\]\[DFS\] 二叉树的所有路径](/garnet/suan-fa/shu/257-er-cha-shu-de-suo-you-lu-jing.md)
* [\[129\]\[中等\]\[DFS\] 求根到叶子节点数字之和](broken://pages/-McTyQum4VGXqtEgeueU)
* [\[988\]\[中等\]\[DFS\] 从叶结点开始的最小字符串](broken://pages/-McTyQuyizdVrSi0nCCU)
* [\[124\]\[困难\]\[DFS\] 二叉树中的最大路径和](broken://pages/-McTyQul0jdm15gx4NfI)
* [\[687\]\[简单\]\[DFS\] 最长同值路径](broken://pages/-McTyQutdfUGtiTIWZNw)

#### 最X系列

* [\[235\]\[简单\] 二叉搜索树的最近公共祖先](/garnet/suan-fa/shu/235-er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian.md)
* [\[236\]\[中等\]\[DFS\] 二叉搜索树的最近公共祖先](broken://pages/-McTyQurHlPo6_2GW1Ak)

### 栈

#### 单调栈

对于寻找**最近一个比当前值小大/小**的问题, 都可以使用单调栈来解决.

* [\[42\]\[困难\]\[栈\]\[动态规划\] 接雨水](/garnet/suan-fa/zhan/42-jie-yu-shui.md)
* [\[84\]\[困难\]\[栈\] 柱状图中最大的矩形](/garnet/suan-fa/zhan/84-zhu-zhuang-tu-zhong-zui-da-de-ju-xing.md)
* [\[456\]\[中等\]\[栈\] 132模式](/garnet/suan-fa/zhan/456132-mo-shi.md)
* [\[496\]\[简单\]\[栈\] 下一个更大元素 I](/garnet/suan-fa/zhan/496-xia-yi-ge-geng-da-yuan-su-i.md)
* [\[503\]\[中等\]\[栈\] 下一个更大元素 II](/garnet/suan-fa/zhan/503-xia-yi-ge-geng-da-yuan-su-ii.md)
* [\[556\]\[中等\]\[栈\] 下一个更大元素 III](/garnet/suan-fa/zhan/503-xia-yi-ge-geng-da-yuan-su-iii.md)

#### 运算过程实现

* [\[150\]\[中等\]\[栈\] 逆波兰表达式求值](/garnet/suan-fa/zhan/150-ni-bo-lan-biao-da-shi-qiu-zhi.md)
* [\[224\]\[困难\]\[栈\] 基本计算器](/garnet/suan-fa/zhan/224-ji-ben-ji-suan-qi.md)
* [\[227\]\[中等\]\[栈\] 基本计算器 II](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/栈/227-基本计算器-II.md)

### 哈希

#### 原地哈希

* [\[41\]\[困难\]\[原地哈希\] 缺失的第一个正数](broken://pages/-McTyQxvuc0XU8Ls4y0V)

### 链表

#### 链表反转

* [\[206\]\[简单\]\[递归\]\[双指针\] 反转链表](broken://pages/-McTyQvgdnif7dTm8QvO)
* [\[92\]\[中等\]\[递归\] 反转链表 II](/garnet/suan-fa/lian-biao/92-fan-zhuan-lian-biao-ii.md)

#### 删除重复元素

* [\[83\]\[简单\]\[双指针\]\[DFS\] 删除排序链表中的重复元素](broken://pages/-McTyQxFez-i3izHXNmc)
* [\[82\]\[中等\]\[DFS\] 删除排序链表中的重复元素 II](broken://pages/-McTyQuebDbyTaXsp1be)

## 指定算法系列

### 回溯

* [回溯模板](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/回溯/回溯模板.md)
* [\[46\]\[中等\]\[回溯\] 全排列](/garnet/suan-fa/hui-su/46-quan-pai-lie.md)
* [\[47\]\[中等\]\[回溯\] 全排列 II](/garnet/suan-fa/hui-su/47-quan-pai-lie-ii.md)
* [\[39\]\[中等\]\[回溯\] 组合总和](/garnet/suan-fa/hui-su/39-zu-he-zong-he.md)
* [\[40\]\[中等\]\[回溯\] 组合总和 II](/garnet/suan-fa/hui-su/40-zu-he-zong-he-ii.md)
* [\[216\]\[中等\]\[回溯\] 组合总和 III](/garnet/suan-fa/hui-su/216-zu-he-zong-he-iii.md)
* [\[77\]\[中等\]\[回溯\] 组合](/garnet/suan-fa/hui-su/77-zu-he.md)
* [\[282\]\[困难\]\[回溯\] 给表达式添加运算符](/garnet/suan-fa/shu-xue/282-gei-biao-da-shi-tian-jia-yun-suan-fu.md)
* [\[51\]\[困难\]\[回溯\] N皇后](/garnet/suan-fa/hui-su/51n-huang-hou.md)

### 递归生成

* [\[22\]\[中等\]\[回溯\]\[BFS\] 括号生成](broken://pages/-McTyQv1vyusrXYa4XZE)
* [\[面试题 16.11\]\[简单\] 跳水板](/garnet/suan-fa/di-gui/16.11-tiao-shui-ban.md)
* [\[剑指Offer-38\]\[中等\]\[回溯\] 字符串的排列](/garnet/suan-fa/hui-su/jian-zhi-offer38-zi-fu-chuan-de-pai-lie.md)

### 动态规划

#### 背包问题

* [背包问题](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/动态规划/背包问题.md)

**01背包问题**

* [\[416\]\[中等\]\[动态规划\]\[背包\] 分割等和子集](/garnet/suan-fa/dong-tai-gui-hua/416-fen-ge-deng-he-zi-ji.md)
* [\[494\]\[中等\]\[动态规划\]\[背包\] 目标和](/garnet/suan-fa/dong-tai-gui-hua/494-mu-biao-he.md)
* [\[1049\]\[困难\]\[动态规划\]\[背包\] 最后一块石头的重量 II](/garnet/suan-fa/dong-tai-gui-hua/1049-zui-hou-yi-kuai-shi-tou-de-zhong-liang-ii.md)

**完全背包问题**

完全背包问题, 由于状态转移方程, 要遍历多个位置取最值, 因此经常可以转化成遍历的问题, 使用**DFS**或**BFS**的思路进行解决.

* [\[279\]\[中等\]\[动态规划\]\[背包\]\[BFS\] 完全平方数](/garnet/suan-fa/dong-tai-gui-hua/279-wan-quan-ping-fang-shu.md)
* [\[322\]\[中等\]\[动态规划\]\[背包\]\[DFS\] 零钱兑换](/garnet/suan-fa/dong-tai-gui-hua/322-ling-qian-dui-huan.md)
* [\[343\]\[中等\]\[动态规划\]\[背包\] 整数拆分](/garnet/suan-fa/dong-tai-gui-hua/343-zheng-shu-chai-fen.md)
* [\[518\]\[中等\]\[动态规划\]\[背包\] 零钱兑换 II](/garnet/suan-fa/dong-tai-gui-hua/518-ling-qian-dui-huan-ii.md)
* [\[面试题 08.11\]\[中等\]\[动态规划\]\[背包\] 硬币](https://github.com/garnetow/garnetbook/tree/108c13263d5a51d3b40d2dbf2f99004d887c652c/Algorithm/Algorithm/动态规划/08.11-硬币.md)

**多维背包**

* [\[474\]\[中等\]\[动态规划\]\[背包\] 一和零](/garnet/suan-fa/dong-tai-gui-hua/474-yi-he-ling.md)

**带有放入顺序限制的背包**

放入物品的顺序如果有限制, 一般会先循环背包限制, 再循环每种物品, 因为放入顺序会产生影响的物品, 一般都是特殊的物品, 状态转移需要每种物品单独考虑:

* [\[10\]\[困难\]\[动态规划\] 正则表达式匹配](broken://pages/-McTyQvnIvaldp0VVuFd)
* [\[44\]\[困难\]\[动态规划\]\[背包\] 通配符匹配](broken://pages/-McTyQvph1Dyxgf6gw3K)
* [\[983\]\[中等\]\[动态规划\]\[背包\] 最低票价](/garnet/suan-fa/dong-tai-gui-hua/983-zui-di-piao-jia.md)

### 滑动窗口

[我写了一首诗，把滑动窗口算法变成了默写题](https://leetcode-cn.com/problems/minimum-window-substring/solution/hua-dong-chuang-kou-suan-fa-tong-yong-si-xiang-by-/)

* [\[3\]\[中等\]\[滑动窗口\] 无重复字符的最长子串](broken://pages/-McTyQxUwshZt3aHcaZZ)
* [\[76\]\[困难\]\[滑动窗口\] 最小覆盖子串](/garnet/suan-fa/hua-dong-chuang-kou/76-zui-xiao-fu-gai-zi-chuan.md)
* [\[239\]\[困难\]\[队列\] 滑动窗口最大值](broken://pages/-McTyQxXum4toCUXcKBm)
* [\[438\]\[中等\]\[滑动窗口\] 找到字符串中所有字母异位词](/garnet/suan-fa/hua-dong-chuang-kou/438-zhao-dao-zi-fu-chuan-zhong-suo-you-zi-mu-yi-wei-ci.md)
* [\[567\]\[中等\]\[滑动窗口\] 字符串的排列](/garnet/suan-fa/hua-dong-chuang-kou/567-zi-fu-chuan-de-pai-lie.md)

### 双指针

#### 快慢指针

* [\[141\]\[简单\]\[双指针\] 环形链表](broken://pages/-McTyQxIKF0MBibA5oOc)
* [\[142\]\[中等\]\[双指针\] 环形链表 II](broken://pages/-McTyQxJVUzh6cfY3qYl)
* [\[202\]\[简单\]\[双指针\] 快乐数](/garnet/suan-fa/shuang-zhi-zhen/202-kuai-le-shu.md)
* [\[287\]\[中等\]\[双指针\]\[二分\] 寻找重复数](broken://pages/-McTyQxNtPJrpd9yxO-H)

#### 前后指针

* [\[713\]\[中等\]\[二分\]\[双指针\] 乘积小于K的子数组](broken://pages/-McTyQx_m7ntR2GponoN)
* [\[剑指Offer-57-II\]\[简单\]\[双指针\] 和为s的连续正数序列](/garnet/suan-fa/shuang-zhi-zhen/jian-zhi-offer57ii-he-weisde-lian-xu-zheng-shu-xu-lie.md)

#### 左右指针

* [\[11\]\[中等\]\[双指针\] 盛最多水的容器](/garnet/suan-fa/shuang-zhi-zhen/11-sheng-zui-duo-shui-de-rong-qi.md)

#### 双链表

* [\[160\]\[简单\]\[双指针\] 相交链表](broken://pages/-McTyQxKLnBvacdeOhg-)

### 二分图

* [\[785\]\[中等\]\[BFS\]\[DFS\]\[并查集\] 判断二分图](broken://pages/-McTyQvCZQAprNKe67RM)
