Leetcode75-151-Reverse-Words 🧠 思路总结 1 (Split) 把空格切分成"",这样的话就能通过 长度 进行区分哪些是空格哪些不是 所以我们使用 split(" ") 按单个空格将字符串拆分成数组 连续空格会被切分成 空字符串 "" 使用 StringBuilder 拼接结果,最后用 trim() 去掉多余空格 举个例子:s = " he 2026-01-27 LeetCode > 75 > String #Array #String #Two Pointers
Leetcode75-345-Reverse-Vowels 🧠 思路总结可以使用toCharArray()将String转化为char Array形式,因为String是immutable的,转化为char Array的话就可以使用双指针之后对它的vowels出现的地方idx进行调换每次交换后同时移动两个指针,直到指针相遇为止 ❗ 易错点 / 小坑 内层 while 一定要加 left < right,防止指针交叉后仍继续移动或错误 sw 2026-01-27 LeetCode > 75 > String #String #Two Pointers
Leetcode75-605-Can-Place-Flower 🧠 思路总结总共三种情况: index = 0时,flowerbed[i + 1] == 0 (or != 0) index = flowerbed.length - 1时,flowerbed[i - 1] == 0 (or != 0) 中间的情况:i != 0, i != flowerbed.length - 1- flowerbe 2026-01-26 LeetCode > 75 > Array #Greedy #Array
Leetcode-1071-GCD-of-Strings 🧠 思路总结 题目本质是在找一个最短重复单元,使它能重复拼接得到 str1 和 str2。 如果两个字符串来自同一个重复单元,那么 str1 + str2 和 str2 + str1 的结果一定完全相同。 在确认结构一致后,问题就转化为:这个重复单元的长度是多少(最大公约数(GCD))。 ❗ 易错点 / 小坑 最大公约字符串一定是前缀,不需要考虑中间子串 gcd 方法本质是欧几里 2026-01-26 LeetCode > String #String #Math
Leetcode-110-Balanced-BT 🧠 思路总结❗ 易错点 / 小坑 … ✅ 代码(Java)1// ... 2026-01-15 LeetCode > Binary Tree #dfs #recursion
Leetcode-104-111-Max-Min-Depth-BT 🧠 思路总结 104: Max depth 递归 dfs: 空节点返回 0 递归调用左子树和右子树 返回 max(left, right) + 1 111: Min depth root == null → 0 只有一边为空 → 非空那边 + 1 两边都不空 → min(left, right) + 1 ❗ 易错点 / 小坑 111: Min de 2026-01-13 LeetCode > Binary Tree #dfs #recursion
Leetcode-101-Symmetric-Tree 🧠 思路总结递归三部曲: 确定递归函数的参数和返回值 确定终止条件 节点为空的情况有: 左节点为空,右节点不为空,不对称,return false 左不为空,右为空,不对称 return false 左右都为空,对称,返回true 此时已经排除掉了节点为空的情况,那么剩下的就是左右节点不为空:左右都不为空,比较节点数值,不相同就return false 确定单层递归的逻辑 2026-01-11 LeetCode > Binary Tree #recursion
Interview:ProductExceptSelf ❓ 问题给你一个整数数组 nums,你要生成一个新的数组 res,满足:res[i] = 除了 nums[i] 之外,数组里所有其他数的乘积。 限制条件: 不能用除法 时间复杂度要 O(n) 🧠 思路总结 对任意一个位置i:当前位置的结果 = 左边所有数的乘积 ✖️ 右边所有数的乘积 使用前缀 & 后缀法 ✅ 代码(Java)12345678910111 2026-01-10 Interview > N/A #Interview #Array #Prefix #Suffix
Leetcode-144-Binary-Tree-Preorder 相似题目144 (preorder)、94 (inorder)、145 (postorder) 🧠 思路总结 前序preorder遍历的固定顺序是 根 → 左 → 右。inorder: 左 → 根 → 右postorder: 左 → 右 → 根 preorder顺序图 三个order使用list ❗ 易错点 / 小坑 在递归函数内部 每次 new 一个 List,会导致 2025-12-29 LeetCode > Binary Tree #dfs #recursion
LeetCode 1. Two Sum 🧠 思路总结 用哈希表记录「值 -> 下标」 遍历数组,每次看 target - nums[i] 在不在 map 里 在的话直接返回两个下标;不在就把当前值加入 map 模板题,很多 Two Sum 变种都能套这个写法 ❗ 易错点 / 小坑 题目保证只有一个答案,所以找到后可以直接 return 不能先把所有数丢进 map 再找,否则会用到同一个元素两次 注 2025-12-10 LeetCode > Array #HashMap #Array #Easy