目录
未完待续……
🌴递归、搜索与回溯
一、递归
递归 1~5 题解 |
二、二叉树中的深搜
深搜 1~6 题解 |
三、穷举vs暴搜vs深搜vs回溯vs剪枝
穷举…剪枝 1~2 题解 |
四、综合练习
- 1863. 找出所有子集的异或总和再求和
- 47. 全排列 II
- 17. 电话号码的字母组合
- 22. 括号生成
- 77. 组合
- 494. 目标和
- 39. 组合总和
- 784. 字母大小写全排列
- 526. 优美的排列
- 51. N 皇后
- 36. 有效的数独
- 37. 解数独
- 79. 单词搜索
- 1219. 黄金矿工
- 980. 不同路径 III
递归与dfs综合练习 1~4 题解 |
递归与dfs综合练习 5~8 题解 |
递归与dfs综合练习 9~12 题解 |
递归与dfs综合练习 13~15 题解 |
五、FloodFill 算法
- 733. 图像渲染
- 200. 岛屿数量
- 695. 岛屿的最大面积
- 130. 被围绕的区域
- 417. 太平洋大西洋水流问题
- 529. 扫雷游戏
- LCR 130. 衣橱整理(原:面试题 13. 机器人的运动范围 )
floodfill算法 1~4 题解 |
floodfill算法 5~7 题解 |
六、记忆化搜索
记忆化搜索 1~5 题解 |
🌵优选算法
一、双指针
- 283.移动零
- 1089.复写零
- 202.快乐数
- 11.盛最多水的容器
- 611.有效三角形的个数
- LCR 179.查找总价格为目标值的两个商品(原:剑指 offer:和为 s 的两个数)
- 15.三数之和
- 18.四数之和
双指针 1~4 题解 |
双指针 5~8 题解 |
二、滑动窗口
- 209.长度最小的子数组
- 3.无重复字符的最长子串
- 1004.最大连续1的个数 III
- 1658.将 x 减到 0 的最小操作数
- 904.水果成篮
- 438.找到字符串中所有字母异位词
- 30.串联所有单词的子串
- 76.最小覆盖子串
滑动窗口 1~4 题解 |
滑动窗口 5~8 题解 |
三、二分查找
- 704.二分查找
- 34.在排序数组中查找元素的第一个和最后一个位置
- 35.搜索插入位置
- 69.x 的平方根
- 852.山脉数组的峰顶索引
- 162.寻找峰值
- 153.寻找旋转排序数组中的最小值
- LCR 173.点名 (原:剑指 offer:0~n-1 中缺失的数字 )
二分查找 1~4 题解 |
二分查找 5~8 题解 |
四、前缀和
- DP34 【模板】一维前缀和
- DP35 【模板】二维前缀和
- 724.寻找数组的中心下标
- 238.除自身以外数组的乘积
- 560.和为 k 的子数组
- 974.和可被 k 整除的子数组
- 525.连续数组
- 1314.矩阵区域和
前缀和 1~4 题解 |
前缀和 5~8 题解 |
五、位运算
位运算 1~6 题解 |
六、模拟
模拟 1~5 题解 |
七、分治 - 快速排序
- 75. 颜色分类
- 912. 排序数组
- 215. 数组中的第K个最大元素
- LCR 159. 库存管理 III(原:剑指 Offer . 最小的k个数)
分治 - 快排 1~4 题解 |
八、分治 - 归并排序
- 912. 排序数组
- LCR 170. 交易逆序对的总数 (原:剑指 Offer . 数组中的逆序对)
- 315. 计算右侧小于当前元素的个数
- 493. 翻转对
分治 - 归并排序 1~4 题解 |
九、链表
十、哈希表
十一、字符串
十二、栈
十三、队列 + 宽搜(bfs)
十四、优先级队列(堆)
十五、BFS 解决 FloodFill 算法
十六、BFS 解决最短路问题
十七、多源 BFS
十八、BFS 解决拓扑排序
🌻贪心算法
🍇动态规划
一、斐波那契数列模型
二、路径问题
- 62. 不同路径
- 63. 不同路径 II
- LCR 166. 珠宝的最高价值(原:剑指 Offer 47. 礼物的最大价值)
- 931. 下降路径最小和
- 64. 最小路径和
- 174. 地下城游戏
三、简单多状态 dp 问题
- 面试题 17.16. 按摩师
- 213. 打家劫舍 II
- 740. 删除并获得点数
- LCR 091. 粉刷房子(原:剑指 Offer II 091. 粉刷房子)
- 309. 买卖股票的最佳时机含冷冻期
- 714. 买卖股票的最佳时机含手续费
- 123. 买卖股票的最佳时机 III
- 188. 买卖股票的最佳时机 IV
四、子数组、子串系列
- 53. 最大子数组和
- 918. 环形子数组的最大和
- 152. 乘积最大子数组
- 1567. 乘积为正数的最长子数组长度
- 413. 等差数列划分
- 978. 最长湍流子数组
- 139. 单词拆分
- 467. 环绕字符串中唯一的子字符串
五、子序列问题
- 300. 最长递增子序列
- 376. 摆动序列
- 673. 最长递增子序列的个数
- 646. 最长数对链
- 1218. 最长定差子序列
- 873. 最长的斐波那契子序列的长度
- 1027. 最长等差数列
- 446. 等差数列划分 II - 子序列
六、回文串问题
七、两个数组的 dp
- 1143. 最长公共子序列
- 1035. 不相交的线
- 115. 不同的子序列
- 44. 通配符匹配
- 10. 正则表达式匹配
- 97. 交错字符串
- 712. 两个字符串的最小ASCII删除和
- 718. 最长重复子数组