每日一题算法:2020年7月10日 [最佳买卖股票时机含冷冻期] maxProfit

本文探讨了2020年7月10日LeetCode算法题——最佳买卖股票时机含冷冻期(maxProfit),分析了解题思路和错误原因。通过暴力迭代方法计算,发现可以优化判断条件,但仍未达到理想的时间复杂度。
摘要由CSDN通过智能技术生成

2020年7月10日 最佳买卖股票时机含冷冻期 maxProfit在这里插入图片描述

默认格式:

class Solution {
   
    public int maxProfit(int[] prices) {
   

    }
}

解题思路:

首先,看一看能否使用动态规划的方式来做该题。

第n天获得的最大利益和第n-1天有关系吗?没有,那就没有办法做动态规划。

1,暴力迭代

第1天买入,第2、3、4、5…最后一天卖出,计算出最低收入。

在这里插入图片描述

然后计算第二天买入的最低收入。第二天买入的比第一天买入的收入高
在这里插入图片描述

计算第三天买入的收入
在这里插入图片描述

没有变化,第三天买入的必定比第二天买入的收益低。

第四天买入的也是一样,没有比第一天买入收益高。
在这里插入图片描述

重点第五天买入的,需要加上第3天卖出的最高收益。第5天买入,之前完全足够第2天买入第三天卖出第4天休眠,所以,我们加上前面3天最高的收益,再计算之后可能得到的最高的收益。
在这里插入图片描述
最后得到最高值23。

时间复杂度n2,空间复杂度n

实现代码:

初版:

在这里插入图片描述

public int
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值