LeetCode 17. 电话号码的字母组合 17. 电话号码的字母组合解题思路先建立数字到字母的映射表,按位置逐层递归,每层遍历当前数字对应的所有可选字母,填入路径对应位置后进入下一层,递归到底时直接将路径数组转为字符串加入结果,无需回溯撤销 2026-02-08 LeetCode #哈希表 #字符串 #回溯
LeetCode 19. 删除链表的倒数第 N 个结点 19. 删除链表的倒数第 N 个结点解题思路我们要删除倒数第 n 个节点,就必须找到倒数第 n+1 个节点。\所以 fast 必须先走 n+1 步,这样当 fast 走到终点时,slow 正好在倒数第 n+1 个节点上。 2026-02-08 LeetCode #双指针 #链表
LeetCode 198. 打家劫舍 198. 打家劫舍解题思路 $dp[i]$ 表示偷窃到第 $i$ 个房屋时能获得的最大金额 偷第$i$个房屋$$dp[i] = dp[i - 2] + nums[i]$$ 不偷第$i$个房屋$$dp[i] = dp[i - 1]$$ 状态方程$$dp[i] = max(dp[i - 1], dp[i - 2] + nums[i])$$ 特判 数组长度为 1 初始化前两 2026-02-08 LeetCode #数组 #动态规划
LeetCode 199. 二叉树的右视图 199. 二叉树的右视图解题思路 先访问右子树,再访问左子树,这样就能保证在每一层访问到的第一个节点就是该层最右边的节点 层序遍历,将每一层队列中最后一个节点的值保存下来即可 2026-02-08 LeetCode #树 #深度优先搜索 #广度优先搜索 #二叉树
LeetCode 20. 有效的括号 20. 有效的括号解题思路遇左括号入栈,遇右括号则弹出栈顶左括号检查是否匹配,不匹配或栈空直接返回false,遍历结束后栈必须为空才合法 2026-02-08 LeetCode #栈 #字符串
LeetCode 200. 岛屿数量 200. 岛屿数量解题思路采用深度优先搜索的方法来解决,遍历整个二维网格,当遇到一个值为 ‘1’ 的位置时,说明找到了一个岛屿。此时,我们可以通过深度优先搜索将与该位置相连的所有 ‘1’ 都标记为已访问(例如,将它们改为 ‘2’),以避免重复计数。每当我们找到一个新的岛屿时,计数器加一。 2026-02-08 LeetCode #数组 #深度优先搜索 #广度优先搜索 #并查集 #矩阵
LeetCode 207. 课程表 207. 课程表解题思路前置知识:拓扑排序 逐步删除入度为0的节点,直到没有入度为0的节点为止 如果所有节点都被删除了,说明图中没有环,课程表是可以完成的,返回 true; 如果还有节点没有被删除,说明图中存在环,课程表无法完成,返回 false。 2026-02-08 LeetCode #深度优先搜索 #广度优先搜索 #图 #拓扑排序