
算法
文章平均质量分 90
枫景Maple
枫景Maple
展开
-
LeetCode 188. 买卖股票的最佳时机 IV(困难)
这道题通过动态规划解决了“最多 k 次交易”的股票买卖问题。Java 和 C# 的实现提供了两种方案:1. 三维 DP 数组版:逻辑直观,适合理解问题。2. 优化空间版:使用滚动数组,节省内存。原创 2025-03-31 23:34:40 · 849 阅读 · 0 评论 -
LeetCode 123. 买卖股票的最佳时机 III(困难)
买卖股票的最佳时机III是一个典型的动态规划问题,关键在于正确定义状态和状态转移方程。我们分别介绍了两种解法:标准动态规划解法:使用二维数组记录每天在不同交易状态下的最大利润,通过状态转移方程计算最终结果。空间优化解法:观察到每个状态只依赖于前一天的状态,将空间复杂度从O(n)优化到O(1)。原创 2025-03-26 22:23:02 · 695 阅读 · 0 评论 -
LeetCode 309. 买卖股票的最佳时机含冷冻期(中等)
LeetCode 309. 买卖股票的最佳时机含冷冻期 - 详细题解原创 2025-03-19 11:57:11 · 922 阅读 · 0 评论 -
LeetCode 122. 买卖股票的最佳时机 II(中等)
LeetCode 122. 买卖股票的最佳时机 II 题解原创 2025-03-08 21:36:29 · 725 阅读 · 0 评论 -
LeetCode 121. 买卖股票的最佳时机(简单)
我们可以在遍历数组的同时,记录到目前为止见到的最低价格,并计算如果在这个最低价格买入、当前价格卖出能获得的利润。在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。更聪明的方法是利用一个关键洞察:要获得最大利润,我们需要以尽可能低的价格买入,然后在之后尽可能高的价格卖出。例如 [1,2,3,4,5],最大利润为4,应该在第一天买入,最后一天卖出。例如 [7,6,4,3,1],最大利润为0,因为没有可以盈利的交易机会。原创 2025-03-05 15:59:42 · 466 阅读 · 0 评论 -
LeetCode 1186. 删除一次得到子数组最大和(中等)
这道题是经典动态规划问题的变种,关键在于定义好状态和状态转移方程。通过维护两个状态(删除和不删除元素的最大和),我们可以在线性时间内解决这个问题。明确定义状态写出状态转移方程确定初始状态计算最终结果。原创 2025-03-03 14:29:08 · 276 阅读 · 0 评论