题目描述

给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​

设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):

你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。

示例1

        输入:
[1,2,3,0,2]
输出:
3
解释:
对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]

题解

这是 【买卖股票的最佳时机】 系列题目的第六题。

这题其实就是在系列题目第二题基础上加了个限制条件,也就是每次卖了之后,隔一天才能继续买。

模仿第五题,还是采用动态规划。令 为第 只股票之前(包含)买卖(最后一次操作是买)可以获得的最大利润, 为第 只股票之前(包含)买卖(最后一次操作是卖)可以获得的最大利润。那么类似的有如下转移方程:

初始情况就是

和第二、五题区别就是 的转移方程中有个 ,也就是得隔一项,去算前前一天之前(包含)的买卖最大利润。

时间复杂度是

代码

python

        class Solution:def maxProfit(self, prices: List[int]) -> int:n = len(prices)if n == 0: return 0dp0 = [-prices[0]] * ndp1 = [0] * nfor i in range(1, n):dp0[i] = max(dp0[i-1], -prices[i])if i >= 2:dp0[i] = max(dp0[i], dp1[i-2]-prices[i])dp1[i] = max(dp1[i-1], dp0[i-1]+prices[i])return dp1[n-1]

每日算法系列【LeetCode 309】最佳买卖股票时机含冷冻期相关推荐

  1. LeetCode 309. 最佳买卖股票时机含冷冻期 | Python

    文章目录 309. 最佳买卖股票时机含冷冻期 题目 解题思路 代码实现 实现结果 欢迎关注 309. 最佳买卖股票时机含冷冻期 题目来源:力扣(LeetCode)https://leetcode-cn ...

  2. Java实现 LeetCode 309 最佳买卖股票时机含冷冻期

    309. 最佳买卖股票时机含冷冻期 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 .​ 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股 ...

  3. LeetCode 309. 最佳买卖股票时机含冷冻期(动态规划)

    1. 题目 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 .​ 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多 ...

  4. 109. Leetcode 309. 最佳买卖股票时机含冷冻期 (动态规划-股票交易)

    步骤一.确定状态: 确定dp数组及下标含义 dp[i]表示的是到第i天能获得的利润,但这里每天的状态下就不仅仅是持股和不 持股两种状态了,而是持股, 不持股当天卖出和不持股当天没卖出三种状态, 因为冷 ...

  5. 【必备算法】动态规划:LeetCode题(九)309. 最佳买卖股票时机含冷冻期,714. 买卖股票的最佳含手续费

    买卖股票系列: [必备算法]动态规划:一个思路解决六道股票问题 [必备算法]动态规划:LeetCode题(七)121. 买卖股票的最佳时机,122. 买卖股票的最佳时机 II [必备算法]动态规划:L ...

  6. leetcode 309. Best Time to Buy and Sell Stock with Cooldown | 309. 最佳买卖股票时机含冷冻期(动态规划)

    题目 https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/ 题解 我知道要dp,但是不知道要怎么dp ...

  7. LeetCode:309. 最佳买卖股票时机含冷冻期(python)

    LeetCode:309. 最佳买卖股票时机含冷冻期(python) 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 . 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能 ...

  8. 算法训练第五十一天 | 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、股票问题总结

    动态规划part12 309.最佳买卖股票时机含冷冻期 题目描述 思路 总结 714.买卖股票的最佳时机含手续费 题目描述 思路 股票问题总结 309.最佳买卖股票时机含冷冻期 题目链接:309.最佳 ...

  9. 力扣-309最佳买卖股票时机含冷冻期(dp)

    力扣-309最佳买卖股票时机含冷冻期 1.题目 309. 最佳买卖股票时机含冷冻期 给定一个整数数组prices,其中第 prices[i] 表示第i天的股票价格 . 设计一个算法计算出最大利润.在满 ...

  10. 力扣 -- 309. 最佳买卖股票时机含冷冻期

    题目链接:309. 最佳买卖股票时机含冷冻期 - 力扣(LeetCode) 下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴. 参考代码: class Sol ...

最新文章

  1. import win32api 安装pip install pypiwin32
  2. Mybatis-入门篇-根据官方文档搭建
  3. 如何避免jps中一大堆spark-submit+Spark交互模式启动速度+正确的退出spark-shell/pyspark/SparkR/hbase的习惯
  4. 2021年高考成绩查询襄阳状元,大胆猜测一下,2021年高考,湖北省文理状元会花落谁家?...
  5. 学完这篇依赖注入,与面试官扯皮就没有问题了。
  6. spring之集合注入
  7. VMware卸载后再安装时网络连接处没有虚拟网卡
  8. 仿微信语音输入页面(讯飞语音)
  9. 诺基亚9 PureView正式发布
  10. R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型、使用ggcoxzph函数可视化进行Schoenfeld残差图检验模型是否满足等比例风险
  11. 量化交易入门阶段——欧奈尔的CANSLIM模型(N 新产品、新管理层和股价创新高)
  12. Linux系统概念复习
  13. PHP 7系列版本(7.0、7.1、7.2、7.3、7.4)新特性
  14. 面试中如何化解懵逼,从一个短网址服务说起
  15. Word02-隐藏回车换行符
  16. ubuntu16.04安装tensorflow,pytorch,gluon等
  17. 2020年性价比之最相机的比较:索尼6400 与富士 xt30的比较及相关评价摘录
  18. 远程桌面工具连接—远程桌面卡屏如何解决
  19. Notes twenty-sixth days-渗透攻击-红队-红队案例
  20. 北大暑期课堂散心指南游记

热门文章

  1. ABP框架详解(一)ABPBootstrapper
  2. HIVE编程指南之HiveQL的学习笔记1
  3. 【编程基本功练习0】zoj 3486
  4. vs2008软件测试实战 1
  5. JS--我发现,原来你是这样的JS:面向对象编程OOP[1]--(理解对象和对象属性类型)...
  6. 【Spring】学习SpringAOP
  7. 快速备份sqlserver2005以上版本数据库的方法-摘自网络
  8. js mouseover mouseout 多次触发
  9. java的HashCode方法
  10. Serial Interface之I2C:关于DS1624 2线通信SDA保持时间的说明