274. H 指数
274. H 指数 274. H 指数 ✨核心逻辑 本题要求寻找最大的 h,使得有至少 h 篇论文的引用次数 ≥ h。由于 h 的范围在 [0, n] 之间,这里提供三种解题思路: 排序法:将引用次数升序排序。从前往后遍历,对于索引 i,剩余未遍历的文章数量 n - i 即为当前可满足的 h。如果
274. H 指数 274. H 指数 ✨核心逻辑 本题要求寻找最大的 h,使得有至少 h 篇论文的引用次数 ≥ h。由于 h 的范围在 [0, n] 之间,这里提供三种解题思路: 排序法:将引用次数升序排序。从前往后遍历,对于索引 i,剩余未遍历的文章数量 n - i 即为当前可满足的 h。如果
45. 跳跃游戏 II 45. 跳跃游戏 II ✨核心逻辑 本题采用 贪心算法 的策略,在遍历过程中维护当前能跳到的最远位置: 维护边界与最远距离:使用 end 记录当前这一步跳跃能够覆盖的边界下标,使用 maxValue 记录在遍历过程中能到达的最远下标。 单步贪心:在到达当前跳跃的边界 end
122. 买卖股票的最佳时机 II 122. 买卖股票的最佳时机 II ✨核心逻辑 本题采用 贪心算法 的策略: 拆解利润:由于不限制交易次数(且同一时间只能持有一股),我们可以把一段时间的上涨利润拆解成每天的“小利润”。比如 1 -> 2 -> 3 的总利润为 2,等同于 (2-1) + (3-2
80. 删除有序数组中的重复项 II 80. 删除有序数组中的重复项 II ✨核心逻辑 本题采用 双指针(快慢指针) 的策略: 有序数组特性:由于数组是严格递增的,因此重复的元素必然是连续相邻的。 容错上限:题目允许每个元素最多出现两次。这意味着,对于一个“新”元素,只要它与它前面相隔两个位置的元素
55. 跳跃游戏 55. 跳跃游戏 ✨核心逻辑 本题采用 贪心算法 的策略: 最大化覆盖范围:不必纠结于具体要跳几步,只需要维护一个变量 maxReach,表示当前能到达的最远位置。 遍历判断:从数组的第一个位置开始遍历。如果遍历到的当前下标 i 超出了我们目前能到达的最远位置 maxReach,说
189. 轮转数组 189. 轮转数组 📚核心逻辑 本解法采用 三次翻转(数组反转)的策略: 整体翻转:先将整个数组进行翻转,这样原本在末尾的元素就移动到了开头。 局部翻转(前 k 个):将前 k 个元素进行翻转,恢复这部分的正确顺序。 局部翻转(剩余部分):将剩下的元素进行翻转,恢复这部分的正确
98. 验证二叉搜索树 98. 验证二叉搜索树 核心逻辑 验证二叉搜索树(BST)需要满足: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 本解法采用 分治 + 上下界约束 的策略: 每层递归传入当前节点允许的 最大值
230. 二叉搜索树中第 K 小的元素 230. 二叉搜索树中第 K 小的元素 🚀核心逻辑 本解法采用 二叉搜索树的中序遍历 策略: 中序遍历特性:二叉搜索树的中序遍历结果是一个 严格递增 的序列。 操作流程: 进行中序遍历(左 -> 根 -> 右)。 每访问一个节点(由小到大),计数器 coun
236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先 核心逻辑 本解法采用 递归 的策略: 递归终止条件: 如果 root == null,说明走到底了还没找到 p 和 q ,返回 null。 如果 root 就是 p 或 q 其中一个,则直接返回 root。 递归搜索:
173. 二叉搜索树迭代器 173. 二叉搜索树迭代器 📚思路一:提前中序遍历 + 列表缓存 核心逻辑 本解法采用 提前中序遍历 的策略: 在构造函数中,使用递归对 BST 进行一次完整的中序遍历,将所有节点值按升序保存到 List<Integer> 中。 维护一个索引变量 index,初始化为