- 博客(3)
- 收藏
- 关注
原创 深入解析最长公共子序列(LCS):三种实现方法与性能对比
给定两个字符串X和Y,LCS 是指在不改变字符相对顺序的前提下,同时出现在两个字符串中的最长子序列(子序列不要求字符连续)。X = "ABCBDAB",Y = "BDCABA",其 LCS 为 "BCBA" 或 "BDAB",长度为 4。LCS 作为动态规划的经典应用,核心在于利用 DP 表存储子问题解,避免重复计算。本文的三种实现方法各有侧重:基础 DP 聚焦原理,增强 DP 兼顾工程化,递归 + DP 对比则深化对算法的理解。实际应用中,动态规划因时间和空间效率优势,是 LCS 的首选解法;
2025-12-19 23:56:34
737
原创 非负整数数组跳跃可达性问题的贪心算法解决方案
在数组跳跃可达性问题中,“局部最优” 表现为在当前可到达的范围内,选择能够跳得最远的位置,通过不断扩大 “最远可达距离”,最终判断该距离是否能够覆盖最后一个下标。初始状态下,我们位于数组的第一个下标(即下标 0),需要判断是否能够通过一系列跳跃操作到达数组的最后一个下标(即下标n-1,其中n为数组长度)。否则,返回false。因此,算法的时间复杂度为O(n),其中n为数组的长度。因此,算法的空间复杂度为O(1),属于最优的空间复杂度,能够有效节省内存资源,尤其在处理大规模数组时优势明显。
2025-12-15 22:05:00
999
原创 【LeetCode 经典题解】盛最多水的容器 —— 双指针法详解
本文详细解析了LeetCode经典题目"盛最多水的容器"的最优解法。题目要求在给定高度数组中找到两条垂线,使其与x轴构成的容器能容纳最多水。通过分析盛水量公式(宽度×较短高度),提出双指针法:初始化左右指针在数组两端,每次移动较短高度的指针以寻找更大盛水量。该方法时间复杂度O(n),空间复杂度O(1),显著优于暴力解法的O(n²)。文章包含完整代码实现、复杂度分析和测试案例,帮助读者掌握双指针法的核心思想及其在区间最值类问题中的应用。
2025-12-07 21:31:24
565
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅