LeetCode 算法题
文章平均质量分 86
Lentr0py
这个作者很懒,什么都没留下…
展开
-
LeetCode 204. 计数质数 线性筛法详解 Java实现
这道题目考察了质数筛选的算法。通过线性筛法可以高效地计算小于n的质数数量,适用于大范围的质数筛选问题。原创 2024-08-18 11:55:36 · 1070 阅读 · 0 评论 -
LeetCode 160. 相交链表 双指针哈希表详解 Java实现
这道题目考察了链表的相交问题,双指针法通过简单有效的遍历,能够在O(m + n)的时间复杂度内找到相交节点或确认两个链表不相交。原创 2024-08-16 17:22:13 · 747 阅读 · 0 评论 -
LeetCode 23. 合并K个升序链表 分治递归详解 时间击败100% Java实现
这道题目考察了链表的合并问题,使用分治法可以有效地降低合并的时间复杂度,同时也可以通过最小堆法实现更优的时间复杂度。原创 2024-08-16 16:53:32 · 1191 阅读 · 0 评论 -
LeetCode 121. 买卖股票的最佳时机 动态规划详解
这道题目主要考察了对动态规划的理解,通过对最低价格的动态更新和利润的实时计算,可以在O(n)的时间复杂度内得到最优解。原创 2024-08-15 22:43:24 · 578 阅读 · 0 评论 -
LeetCode 21. 合并两个有序链表 链表合并 Java实现
这道题目考察了链表的基本操作,通过迭代和递归两种方法都能有效地合并两个有序链表。迭代法更适合处理链表较长的情况,而递归法则在代码上更加简洁。原创 2024-08-15 22:06:50 · 625 阅读 · 0 评论 -
LeetCode 215. 数组中的第K个最大元素 快速选择详解 Java实现
快速选择算法在处理找到第k个最大元素的问题时表现出色,时间复杂度为O(n),适合处理较大规模的数组。原创 2024-08-15 21:48:26 · 946 阅读 · 0 评论 -
LeetCode 912. 排序数组 计数排序详解 Java实现
计数排序在处理范围已知且范围较小的整数数组时非常高效,能够在线性时间内完成排序。对于数据范围较大的情况,其他排序算法可能更适合。原创 2024-08-15 21:11:17 · 625 阅读 · 0 评论 -
LeetCode 239. 滑动窗口最大值 单调队列详解 Java
滑动窗口最大值问题通过使用单调队列来维护窗口内的最大值,以O(n)的时间复杂度解决了问题。这种方法不仅简单易行,而且非常高效,是处理类似滑动窗口问题的经典策略。原创 2024-08-14 19:21:50 · 797 阅读 · 0 评论 -
LeetCode 968. 监控二叉树 动态规划和贪心算法详解 Java
本题通过 DFS 和动态规划,以及贪心策略两种思路,计算了监控二叉树所需的最小摄像头数量。动态规划的解法适合大多数树结构问题,贪心策略则提供了一种更加直接的思路。原创 2024-08-14 17:26:55 · 1137 阅读 · 0 评论 -
LeetCode 337. 打家劫舍 III DFS + 动态规划 详解
通过 DFS 和动态规划结合,我们能够有效地求解打家劫舍 III 问题。此方法思路清晰,效率较高,适用于大多数场景。原创 2024-08-14 11:05:36 · 670 阅读 · 0 评论 -
LeetCode 2246. 相邻字符不同的最长路径 递归 + 深度优先搜索 (DFS)详解
通过递归和 DFS 算法,我们可以有效地求解相邻字符不同的最长路径问题。此方法思路清晰,易于实现,且具有较高的效率。原创 2024-08-14 10:38:45 · 705 阅读 · 0 评论 -
LeetCode 124. 二叉树中的最大路径和 递归 + 深度优先搜索 (DFS)详解
通过递归和 DFS 算法,我们可以有效地求解二叉树中的最大路径和问题。此方法思路清晰,易于实现,且具有较高的效率。原创 2024-08-14 09:54:52 · 258 阅读 · 0 评论 -
LeetCode 543. 二叉树的直径 动态规划树形DP详解
通过递归和 DFS 算法,我们可以有效地求解二叉树的直径问题。此方法思路清晰,易于实现,且具有较高的效率。原创 2024-08-14 09:35:49 · 347 阅读 · 0 评论 -
LeetCode 1039. 多边形三角剖分的最低得分 动态规划详解
通过动态规划解决多边形三角剖分问题,可以通过将问题分解为更小的子问题,并通过状态转移方程进行求解。这个过程帮助我们理解了动态规划在解决复杂组合问题中的应用。原创 2024-08-13 23:18:18 · 584 阅读 · 0 评论 -
LeetCode 516. 最长回文子序列 动态规划详解
最长回文子序列问题通过动态规划方法解决,利用区间dp来表示不同子序列的状态,最终计算出字符串的最长回文子序列长度。通过合理的状态转移方程可以有效求解该问题。原创 2024-08-13 23:13:32 · 304 阅读 · 0 评论 -
LeetCode 188. 买卖股票的最佳时机 IV 动态规划详解
买卖股票的最佳时机 IV 问题,通过动态规划方法解决,考虑了最多可以进行k笔交易的限制,使得问题更具挑战性。通过合理的状态转移方程可以有效求解该问题。原创 2024-08-13 22:35:21 · 626 阅读 · 0 评论 -
LeetCode 309. 最佳买卖股票时机含冷冻期 动态规划详解
最佳买卖股票时机含冷冻期问题,通过动态规划方法解决,该方法结合了股票买卖的冷冻期限制,使得问题具有一定的挑战性。通过合理的状态转移方程可以有效求解该问题。原创 2024-08-13 22:01:49 · 502 阅读 · 0 评论 -
LeetCode 122. 买卖股票的最佳时机 II 动态规划详解
买卖股票的最佳时机 II 问题通过动态规划方法解决,该方法简单易懂,时间复杂度为O(n)。同时,贪心算法也可以用于优化空间复杂度。原创 2024-08-13 20:54:49 · 736 阅读 · 0 评论 -
LeetCode 300. 最长递增子序列 动态规划 + 贪心 详解
最长递增子序列问题通过动态规划和贪心 + 二分查找两种方法来解决。动态规划法简单直观,但时间复杂度较高,而贪心 + 二分查找法在时间复杂度上具有优势,适用于数据规模较大的情况。原创 2024-08-12 22:44:27 · 990 阅读 · 0 评论 -
LeetCode 72. 编辑距离 动态规划详解
通过动态规划的思想,我们能够高效地解决编辑距离问题。通过合理定义dp数组的含义,状态转移方程,以及对初始状态的处理,可以解决类似的字符串转换问题。原创 2024-08-12 22:08:58 · 886 阅读 · 0 评论 -
LeetCode1143. 最长公共子序列 动态规划详解
通过动态规划的思想,我们能够高效地解决最长公共子序列问题。通过合理定义dp数组的含义,状态转移方程,以及对初始状态的处理,可以解决类似的子序列问题。原创 2024-08-12 21:49:42 · 578 阅读 · 0 评论 -
LeetCode 322. 零钱兑换,动态规划详细解法
通过动态规划的思想,我们能够高效地解决零钱兑换问题。通过合理定义dp数组的含义,状态转移方程,以及对初始状态的处理,可以解决类似的完全背包问题。原创 2024-08-12 21:02:24 · 905 阅读 · 0 评论 -
LeetCode 494. 目标和 动态规划详解
通过将问题转化为 01 背包问题,并结合动态规划技术,我们能够高效地解决目标和问题。动态规划的核心在于状态的定义和转移,是解决此类问题的有力工具。原创 2024-08-12 17:34:16 · 577 阅读 · 0 评论 -
LeetCode 213.打家劫舍II 动态规划详细解法
这道题目通过将圆形房屋问题转化为两个线性房屋问题来解决。动态规划的核心在于状态的转移和边界条件的处理,这种方法在处理类似问题时非常高效。原创 2024-08-11 23:39:52 · 507 阅读 · 0 评论 -
LeetCode 198.打家劫舍 动态规划详细解法
这道题目通过动态规划的方式解决了房屋偷窃问题。动态规划的核心在于状态的转移和边界条件的处理。这种方式在类似的数组问题中有广泛的应用,是理解动态规划思想的重要题目之一。原创 2024-08-11 22:56:22 · 545 阅读 · 0 评论 -
LeetCode 22. 括号生成 回溯写法详解
这道题目通过回溯算法帮助我们理解了如何生成所有有效的括号组合。该算法的核心是递归地选择放置左括号或右括号,并通过路径管理和剪枝优化来提高效率。这种思路可以有效地解决类似的组合生成问题。原创 2024-08-11 21:57:12 · 935 阅读 · 0 评论 -
LeetCode 216. 组合总和 III 回溯写法详解
这道题目通过回溯算法帮助我们理解了如何从一组数字中生成满足条件的组合。通过剪枝,我们能够有效减少不必要的计算,提升算法的性能。这种思路在解决类似的组合数学问题时非常有效。原创 2024-08-11 21:41:41 · 977 阅读 · 0 评论 -
LeetCode 77.组合 回溯写法详解
这道题目通过回溯算法帮助我们理解了如何生成所有可能的组合。通过剪枝,可以有效减少搜索空间,提高算法的效率。这种方法在解决组合数学问题时非常常见且有效。原创 2024-08-11 21:09:33 · 868 阅读 · 0 评论 -
LeetCode 131. 分割回文串 两种回溯写法
这道题目通过回溯算法帮助我们理解了如何通过枚举分割点来构建所有可能的回文子串。无论从输入角度还是答案角度,我们都可以高效地解决问题,并找到所有可能的分割方案。原创 2024-08-11 00:37:55 · 441 阅读 · 0 评论 -
LeetCode 102 二叉树层序遍历:广度优先搜索详解
通过这道题目,我们掌握了如何使用广度优先搜索实现二叉树的层序遍历。广度优先搜索不仅适用于树结构的遍历,还广泛应用于图的遍历等其他场景。原创 2024-08-10 12:42:01 · 544 阅读 · 0 评论 -
LeetCode 103. 二叉树的锯齿形层序遍历:广度优先搜索详解
通过这道题目,我们进一步掌握了如何使用广度优先搜索来实现更复杂的二叉树遍历方法。锯齿形层序遍历作为层序遍历的扩展,增加了对节点顺序的控制,提供了一种更灵活的遍历方式。原创 2024-08-10 16:52:26 · 709 阅读 · 0 评论 -
LeetCode 513. 找树左下角的值:深度优先搜索和广度优先搜索两种写法详解
这道题提供了使用 BFS 和 DFS 两种方式来寻找二叉树中最底层最左边的节点值的机会。BFS 和 DFS 各有优势,在不同场景中可以选择不同的算法来解决问题。原创 2024-08-10 18:10:36 · 570 阅读 · 0 评论 -
LeetCode 42.接雨水 前后缀分解和双指针两种写法详解
本题通过计算柱子的左右最大高度来确定能接多少雨水。前后缀分解方法较为直观,而双指针方法在空间复杂度上更具优势。选择合适的解法可以更高效地解决问题。原创 2024-08-10 20:09:25 · 821 阅读 · 0 评论 -
LeetCode 17. 电话号码的字母组合 回溯算法
通过这道题目,我们进一步掌握了回溯算法的应用,尤其是在处理树形结构问题时的优雅解法。通过递归的方式,我们可以有效地生成所有可能的字母组合,并确保不会遗漏任何一种情况。原创 2024-08-11 00:22:49 · 613 阅读 · 0 评论 -
LeetCode 78.子集 两种回溯写法
这道题目通过回溯算法帮助我们理解了在树形结构中如何通过选择路径来构建所有可能的子集。通过从输入和答案两个角度出发,我们能够有效地解决问题并生成所有子集。原创 2024-08-11 00:19:06 · 755 阅读 · 0 评论