| 3. 无重复字符的最长子串 - 力扣(LeetCode) | 双指针 | |
| 19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) | 双指针,控制步长滑动 | |
| 21. 合并两个有序链表 - 力扣(LeetCode) | 链表,构造伪头节点 | |
| 141. 环形链表 - 力扣(LeetCode) | 快慢指针 | |
| 142. 环形链表 II - 力扣(LeetCode) | 快慢指针 + 双指针 | |
| 202. 快乐数 - 力扣(LeetCode) | 快慢指针,判定循环要记得想到快慢指针 | |
| 209. 长度最小的子数组 - 力扣(LeetCode) | 双指针滑窗 | |
| 424. 替换后的最长重复字符 - 力扣(LeetCode) | 双指针滑窗 | 多练习,有点绕,难以理解 |
| 567. 字符串的排列 - 力扣(LeetCode) | 双指针滑窗 | 多练习,还没做出来 |
| 1004. 最大连续1的个数 III - 力扣(LeetCode) | | |
| 1208. 尽可能使字符串相等 - 力扣(LeetCode) | | |
| 2024. 考试的最大困扰度 - 力扣(LeetCode) | | |
| | |
| 206. 反转链表 - 力扣(LeetCode) | 单向链表 | |
| 92. 反转链表 II - 力扣(LeetCode) | 单向链表 | 练手 |
| 146. LRU 缓存 - 力扣(LeetCode) | 哈希+双向链表实现LRU | 练手 |
| | |
| 394. 字符串解码 - 力扣(LeetCode) | 栈/递归 | 多练习,还没做出来 |
| 680. 验证回文串 II - 力扣(LeetCode) | 分治 + 双指针 | 简单题,但是可以练手 |
| | |
| | |
| 5. 最长回文子串 - 力扣(LeetCode) | 动态规划,dp矩阵记录历史计算结果 | |
| 53. 最大子数组和 - 力扣(LeetCode) | 动态规划 | |
| 45. 跳跃游戏 II - 力扣(LeetCode) | 需要多练习??????? | 多练习 |
| 139. 单词拆分 - 力扣(LeetCode) | 动态规划,用DFS会超时 | 多练习 |
| 300. 最长递增子序列 - 力扣(LeetCode) | 动态规划,经典的最长递增子序列问题 | |
| 435. 无重叠区间 - 力扣(LeetCode) | 动态规划,区间排序后,就转换成最长递增子序列问题 | 可以练习下,仍然是最长子序列问题 最长上升子序列类型题目变种专题 |
| 665. 非递减数列 - 力扣(LeetCode) | 动态规划,可以转换成最长递增子序列问题 | |
| | |
| 452. 用最少数量的箭引爆气球 - 力扣(LeetCode) | 排序+ 贪心 | |
| | |
| 17. 电话号码的字母组合 - 力扣(LeetCode) | DFS | |
| 22. 括号生成 - 力扣(LeetCode) | DFS,过程不能用栈实时判定,因为stack弹栈后无法回溯, 每次都小步校验合法性,就能保证全局合法性 | |
| 46. 全排列 - 力扣(LeetCode) | DFS | |
| 47. 全排列 II - 力扣(LeetCode) | DFS,有重复数字,map计数统计 | |
| 78. 子集 - 力扣(LeetCode) | DFS,通过升序DFS剪枝保障集合不重复 | |
| 90. 子集 II - 力扣(LeetCode) | DFS,有重复数字+通过升序DFS剪枝保障集合不重复 | |
| 93. 复原 IP 地址 - 力扣(LeetCode) | DFS,将每位数字变形为1-3的遍历,path长度为4 | |
| 200. 岛屿数量 - 力扣(LeetCode) | DFS,每次发起DFS时岛屿数量+1,DFS内将岛屿变化成水 | 岛屿类问题的通用解法、DFS 遍历框架 |
| 463. 岛屿的周长 - 力扣(LeetCode) | DFS,每次遇到非岛屿长度加1,最终即为总周长 | |
| 695. 岛屿的最大面积 - 力扣(LeetCode) | DFS,每次遇到岛屿面积加1,DFS将岛屿转换成水 | |
| 827. 最大人工岛 - 力扣(LeetCode) | DFS,两轮遍历 | |
| 547. 省份数量 - 力扣(LeetCode) | DFS,连通分量 | |
| | |
| | |
| 100. 相同的树 - 力扣(LeetCode) | 树,前序遍历 | |
| 101. 对称二叉树 - 力扣(LeetCode) | 树,前序遍历 | |
| 102. 二叉树的层序遍历 - 力扣(LeetCode) | 树,队列实现层次遍历 | |
| 104. 二叉树的最大深度 - 力扣(LeetCode) | 树,DFS,深度递归 | |
| 111. 二叉树的最小深度 - 力扣(LeetCode) | 树,DFS,深度递归 | 可以练习下 |
| 236. 二叉树的最近公共祖先 - 力扣(LeetCode) | 树,DFS | 可以练习下 |
| 112. 路径总和 - 力扣(LeetCode) | 树,DFS,路径求和 | |
| 129. 求根节点到叶节点数字之和 - 力扣(LeetCode) | 树,DFS,路径求和 | |
| 226. 翻转二叉树 - 力扣(LeetCode) | 树,DFS | |
| 94. 二叉树的中序遍历 - 力扣(LeetCode) | 树,DFS实现中序遍历 | |
| 144. 二叉树的前序遍历 - 力扣(LeetCode) | 树,DFS实现前序遍历 | |
| 145. 二叉树的后序遍历 - 力扣(LeetCode) | 树,DFS实现后序遍历 | |
| | |
| 130. 被围绕的区域 - 力扣(LeetCode) | BFS,从目标向外遍历扩散 | |
| 210. 课程表 II - 力扣(LeetCode) | 拓扑排序 + BFS | |
| 433. 最小基因变化 - 力扣(LeetCode) | BFS,搜索最短路径用BFS | |
| | |
| 684. 冗余连接 - 力扣(LeetCode) | 并查集 | 还没做,多练习 |
| | |
| | |
| 496. 下一个更大元素 I - 力扣(LeetCode) | 单调栈,对于查下一个更大/小数据,考虑用单调递减/递增栈; 所谓单调主要是指在处理新元素时按单调性依次对栈顶及以下数据弹栈 | 单调栈(矩形面积/贡献法/最小字典序)) |
| | |
| | |
| | |
| 240. 搜索二维矩阵 II - 力扣(LeetCode) | 技巧题,有序矩阵,选择好单向起点 | |
| 324. 摆动排序 II - 力扣(LeetCode) | 技巧题,排序后分区 | |
| 442. 数组中重复的数据 - 力扣(LeetCode) | 技巧题,正反符号标记,元素值作为索引 | |