刷题题单
相向双指针
相向双指针 1
- 1. 两数之和 🔥
- 167. 两数之和 II - 输入有序数组
- 15. 三数之和 🔥 - 包含两个优化
- 2824. 统计和小于目标的下标对数目 *
- 16. 最接近的三数之和 *
- 18. 四数之和 *
- 611. 有效三角形的个数 *
相向双指针 2
- 283. 移动零 🔥
- 11. 盛最多水的容器 🔥
- 42. 接雨水 🔥 - 额外讲了前后缀分解
- 125. 验证回文串 *
- 2105. 给植物浇水 II *
滑动窗口
滑动窗口
- 209. 长度最小的子数组 - 最短
- 3. 无重复字符的最长子串 🔥 - 最长
- 713. 乘积小于 K 的子数组 - 方案数
- 3090. 每个字符最多出现两次的最长子字符串 *
- 2958. 最多 K 个重复元素的最长子数组 *
- 2730. 找到最长的半重复子字符串 *
- 2779. 数组的最大美丽值 *
- 1004. 最大连续 1 的个数 III *
- 2962. 统计最大元素出现至少 K 次的子数组 *
- 2302. 统计得分小于 K 的子数组数目 *
- 1658. 将 x 减到 0 的最小操作数 *
- 1234. 替换子串得到平衡字符串 *
- 76. 最小覆盖子串 🔥 *
- 438. 找到字符串中所有字母异位词 🔥
- 560. 和为 K 的子数组 🔥
二分查找
二分查找
- 35. 搜索插入位置 🔥
- 34. 在排序数组中查找元素的第一个和最后一个位置 🔥 - 三种写法
- 4. 寻找两个正序数组的中位数 🔥
- 2529. 正整数和负整数的最大计数 *
- 2300. 咒语和药水的成功对数 *
- 1385. 两个数组间的距离值 *
- 2080. 区间内查询数字的频率 *
- 2563. 统计公平数对的数目 *
- 275. H 指数 II *
- 875. 爱吃香蕉的珂珂 *
- 2187. 完成旅途的最少时间 *
- 2861. 最大合金数 *
- 2439. 最小化数组中的最大值 *
- 2517. 礼盒的最大甜蜜度 *
二分查找 - 变形
- 162. 寻找峰值
- 153. 寻找旋转排序数组中的最小值 🔥
- 33. 搜索旋转排序数组 🔥 - 两种方法
- 74. 搜索二维矩阵 🔥 *
- 1901. 寻找峰值 II *
- 154. 寻找旋转排序数组中的最小值 II *
- 240. 搜索二维矩阵 II 🔥
链表
链表 - 反转系列
链表 - 快慢指针
链表 - 删除系列
- 237. 删除链表中的节点 - 脑筋急转弯
- 19. 删除链表的倒数第 N 个结点 🔥 - 前后指针
- 83. 删除排序链表中的重复元素
- 82. 删除排序链表中的重复元素 II
- 203. 移除链表元素 *
- 3217. 从链表中移除在数组中存在的节点 *
- 2487. 从链表中移除节点 *
链表 - 合并与排序
二叉树与递归
二叉树与递归 - 深入理解
- 94. 二叉树的中序遍历 🔥
- 104. 二叉树的最大深度 🔥
- 111. 二叉树的最小深度
- 404. 左叶子之和
- 112. 路径总和
- 129. 求根节点到叶节点数字之和
- 1448. 统计二叉树中好节点的数目
- 987. 二叉树的垂序遍历
二叉树与递归 - 灵活运用
- 100. 相同的树
- 101. 对称二叉树 🔥
- 110. 平衡二叉树
- 199. 二叉树的右视图 🔥
- 226. 翻转二叉树 🔥
- 617. 合并二叉树
- 1026. 节点与其祖先之间的最大差值
- 1080. 根到叶路径上的不足节点
- 108. 将有序数组转换为二叉搜索树 🔥
- 114. 二叉树展开为链表 🔥
- 437. 路径总和 III 🔥
二叉树与递归 - 前序/中序/后序
- 98. 验证二叉搜索树 🔥
- 938. 二叉搜索树的范围和
- 2476. 二叉搜索树最近节点查询
- 230. 二叉搜索树中第 K 小的元素 🔥
- 1373. 二叉搜索子树的最大键值和
- 105. 从前序与中序遍历序列构造二叉树 🔥
- 106. 从中序与后序遍历序列构造二叉树
- 889. 根据前序和后序遍历构造二叉树
- 1110. 删点成林
二叉树与递归 - 最近公共祖先
二叉树 - BFS
二叉树 - BFS
- 102. 二叉树的层序遍历 🔥
- 103. 二叉树的锯齿形层序遍历
- 513. 找树左下角的值
- 107. 二叉树的层序遍历 II
- 116. 填充每个节点的下一个右侧节点指针
- 117. 填充每个节点的下一个右侧节点指针 II
- 2415. 反转二叉树的奇数层
- 2641. 二叉树的堂兄弟节点 II
回溯
回溯 - 子集型
回溯 - 组合型与剪枝
回溯 - 排列型
动态规划
动态规划 - 从记忆化搜索到递推
- 198. 打家劫舍 🔥
- 70. 爬楼梯 🔥
- 746. 使用最小花费爬楼梯
- 3693. 爬楼梯 II
- 377. 组合总和 Ⅳ
- 2466. 统计构造好字符串的方案数
- 2266. 统计打字方案数
- 213. 打家劫舍 II
- 64. 最小路径和 🔥
- 118. 杨辉三角 🔥
- 139. 单词拆分 🔥
- 62. 不同路径 🔥
0-1 背包 完全背包 至多/恰好/至少
最长公共子序列 LCS
最长递增子序列 LIS
状态机 DP - 买卖股票系列
- 121. 买卖股票的最佳时机 🔥
- 122. 买卖股票的最佳时机 II
- 309. 买卖股票的最佳时机含冷冻期
- 188. 买卖股票的最佳时机 IV
- 714. 买卖股票的最佳时机含手续费
- 2826. 将三个组排序
- 2786. 访问数组中的位置使分数最大
- 152. 乘积最大子数组 🔥
- 32. 最长有效括号 🔥
区间 DP
- 516. 最长回文子序列
- 1039. 多边形三角剖分的最低得分
- 3040. 相同分数的最大操作数目 II
- 1547. 切棍子的最小成本
- 1771. 由子序列构造的最长回文串的长度
- 1000. 合并石头的最低成本
树形 DP
树形 DP - 直径系列
- 543. 二叉树的直径 🔥
- 124. 二叉树中的最大路径和 🔥
- 2246. 相邻字符不同的最长路径
- 687. 最长同值路径
- 3203. 合并两棵树后的最小直径
- 1617. 统计子树中城市之间最大距离
- 2538. 最大价值和与最小价值和的差值
树形 DP - 最大独立集
树形 DP - 最小支配集
单调栈
单调栈
- 739. 每日温度 🔥
- 42. 接雨水
- 496. 下一个更大元素 I
- 503. 下一个更大元素 II
- 901. 股票价格跨度
- 1019. 链表中的下一个更大节点
- 1944. 队列中可以看到的人数
- 84. 柱状图中最大的矩形 🔥
- 1793. 好子数组的最大分数
- 85. 最大矩形