每日算法系列【LeetCode 309】最佳买卖股票时机含冷冻期
题目描述
给定一个整数数组,其中第 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】最佳买卖股票时机含冷冻期相关推荐
- LeetCode 309. 最佳买卖股票时机含冷冻期 | Python
文章目录 309. 最佳买卖股票时机含冷冻期 题目 解题思路 代码实现 实现结果 欢迎关注 309. 最佳买卖股票时机含冷冻期 题目来源:力扣(LeetCode)https://leetcode-cn ...
- Java实现 LeetCode 309 最佳买卖股票时机含冷冻期
309. 最佳买卖股票时机含冷冻期 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 . 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股 ...
- LeetCode 309. 最佳买卖股票时机含冷冻期(动态规划)
1. 题目 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 . 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多 ...
- 109. Leetcode 309. 最佳买卖股票时机含冷冻期 (动态规划-股票交易)
步骤一.确定状态: 确定dp数组及下标含义 dp[i]表示的是到第i天能获得的利润,但这里每天的状态下就不仅仅是持股和不 持股两种状态了,而是持股, 不持股当天卖出和不持股当天没卖出三种状态, 因为冷 ...
- 【必备算法】动态规划:LeetCode题(九)309. 最佳买卖股票时机含冷冻期,714. 买卖股票的最佳含手续费
买卖股票系列: [必备算法]动态规划:一个思路解决六道股票问题 [必备算法]动态规划:LeetCode题(七)121. 买卖股票的最佳时机,122. 买卖股票的最佳时机 II [必备算法]动态规划:L ...
- 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 ...
- LeetCode:309. 最佳买卖股票时机含冷冻期(python)
LeetCode:309. 最佳买卖股票时机含冷冻期(python) 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 . 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能 ...
- 算法训练第五十一天 | 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、股票问题总结
动态规划part12 309.最佳买卖股票时机含冷冻期 题目描述 思路 总结 714.买卖股票的最佳时机含手续费 题目描述 思路 股票问题总结 309.最佳买卖股票时机含冷冻期 题目链接:309.最佳 ...
- 力扣-309最佳买卖股票时机含冷冻期(dp)
力扣-309最佳买卖股票时机含冷冻期 1.题目 309. 最佳买卖股票时机含冷冻期 给定一个整数数组prices,其中第 prices[i] 表示第i天的股票价格 . 设计一个算法计算出最大利润.在满 ...
- 力扣 -- 309. 最佳买卖股票时机含冷冻期
题目链接:309. 最佳买卖股票时机含冷冻期 - 力扣(LeetCode) 下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴. 参考代码: class Sol ...
最新文章
- import win32api 安装pip install pypiwin32
- Mybatis-入门篇-根据官方文档搭建
- 如何避免jps中一大堆spark-submit+Spark交互模式启动速度+正确的退出spark-shell/pyspark/SparkR/hbase的习惯
- 2021年高考成绩查询襄阳状元,大胆猜测一下,2021年高考,湖北省文理状元会花落谁家?...
- 学完这篇依赖注入,与面试官扯皮就没有问题了。
- spring之集合注入
- VMware卸载后再安装时网络连接处没有虚拟网卡
- 仿微信语音输入页面(讯飞语音)
- 诺基亚9 PureView正式发布
- R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型、使用ggcoxzph函数可视化进行Schoenfeld残差图检验模型是否满足等比例风险
- 量化交易入门阶段——欧奈尔的CANSLIM模型(N 新产品、新管理层和股价创新高)
- Linux系统概念复习
- PHP 7系列版本(7.0、7.1、7.2、7.3、7.4)新特性
- 面试中如何化解懵逼,从一个短网址服务说起
- Word02-隐藏回车换行符
- ubuntu16.04安装tensorflow,pytorch,gluon等
- 2020年性价比之最相机的比较:索尼6400 与富士 xt30的比较及相关评价摘录
- 远程桌面工具连接—远程桌面卡屏如何解决
- Notes twenty-sixth days-渗透攻击-红队-红队案例
- 北大暑期课堂散心指南游记
热门文章
- ABP框架详解(一)ABPBootstrapper
- HIVE编程指南之HiveQL的学习笔记1
- 【编程基本功练习0】zoj 3486
- vs2008软件测试实战 1
- JS--我发现,原来你是这样的JS:面向对象编程OOP[1]--(理解对象和对象属性类型)...
- 【Spring】学习SpringAOP
- 快速备份sqlserver2005以上版本数据库的方法-摘自网络
- js mouseover mouseout 多次触发
- java的HashCode方法
- Serial Interface之I2C:关于DS1624 2线通信SDA保持时间的说明