【动态规划】状态机模型:买卖股票的最佳时机 IV
买卖股票的最佳时机 IV
如果有n天,那么 一共要走n条线段。w[i] 表示 第i天 收益为 w[i]。
交易一次,相当于从0->1->0走一圈,交易k次,一共要走k圈。
f[i][j]: 走i条边,已经走完第j圈(不持有股票)的最大收益。
g[i][j]: 走i条边,正在走第j圈(持有股票)的最大收益。
初始化:
表示还未开始的状态。
i从1开始枚举,j从0开始枚举
class Solution {public int maxProfit(int k, int[] prices) {k=Math.min(k,prices.length);int n=prices.length;int[][]f=new int[2][k+1];int[][]g=new int[2][k+1];for(int i=0;i<2;i++){Arrays.fill(f[i],-100000);Arrays.fill(g[i],-100000);}f[0][0]=0;int res=0;for(int i=1;i<=n;i++){for(int j=0;j<=k;j++){f[i & 1][j]=Math.max(f[i-1 & 1][j],g[i-1 & 1][j]+prices[i-1]);res=Math.max(res,f[i&1][j]);g[i&1][j]=Math.max(g[i&1][j],g[i-1&1][j]);if(j>=1)g[i&1][j]=Math.max(g[i&1][j],f[i-1&1][j-1]-prices[i-1]);}}return res;}
}
【动态规划】状态机模型:买卖股票的最佳时机 IV相关推荐
- 算法训练第五十天 | 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV
动态规划part11 123.买卖股票的最佳时机III 题目描述 思路 拓展 188.买卖股票的最佳时机IV 题目描述 思路 易错点 123.买卖股票的最佳时机III 题目链接:123.买卖股票的最佳 ...
- 算法训练Day50 | LeetCode123. 买卖股票的最佳时机III(最多买卖2次);LeetCode188. 买卖股票的最佳时机IV(最多买卖K次)
目录 LeetCode123. 买卖股票的最佳时机III 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考与收获 LeetCode188. 买卖股票的最佳时机IV 1. 思路 2. 代码实现 ...
- Leetcode 188.买卖股票的最佳时机IV
买卖股票的最佳时机IV 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多笔交易(你必 ...
- 买卖股票的最佳时机IV
思路 这道题目可以说是动态规划:123.买卖股票的最佳时机III的进阶版,这里要求至多有k次交易. 确定dp数组以及下标的含义 在动态规划:123.买卖股票的最佳时机III中,我是定义了一个二维dp数 ...
- 【第50天| ● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV 】
123.买卖股票的最佳时机III class Solution {public:int maxProfit(vector<int>& prices) {vector<int& ...
- Python每日一练(20230307) 重复DNA序列、搜索二维矩阵、买卖股票的最佳时机IV
目录 1. 重复的DNA序列 ★★ 2. 搜索二维矩阵 ★★ 3. 买卖股票的最佳时机 IV ★★★
- 第43天| 123.买卖股票的最佳时机III、 188.买卖股票的最佳时机IV
1.题目链接:123. 买卖股票的最佳时机 III 题目描述: 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 两笔 交易 ...
- LeetCode 188. 买卖股票的最佳时机 IV(动态规划)
1. 题目 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多笔交易(你必须在再次购买 ...
- 188. 买卖股票的最佳时机 IV(JavaScript)
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前 ...
最新文章
- 关于bitnami redmine 的一些问题
- DSTREAM-PT仿真器——ARM公司推出的最高性能的调试跟踪解决方案
- vue切换菜单时不需要页面刷新_antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作...
- mysql study_mysql_study_3
- Atitit 信息化数据采集与分析解析 技术 处理技术 爬虫与http rest json xml h5解析 db数据库 mail协议与处理 数据压缩与解压 数据处理 文本处理
- Datalogic得利捷全新自动调焦产品 开启扩展扫码新体验
- IT战略规划与企业架构
- Sublime Text 3 配置C语言运行环境
- VC写的手机qq聊天记录导出工具
- 记一次halo博客ssl证书过期处理过程
- CentOS7升级MariaDB 10.2版本详细步骤
- pscs6安装序列号
- 数据可视化之基础图表
- Debug与Release版本的区别
- Fire And Motion(英文原版) [转]
- 挂载 4G 网卡上网
- 什么是绝对、相对定位
- 使用包configparser,出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 155: illegal mu
- vue路由匹配实现包容性_简约设计,最大利润,包容性问题
- 【MPU6050能读ID 但读数据值为零(一个硬件问题)】
热门文章
- Ubuntu20.04+ROS Noetic的安装与配置(win10系统下)
- requests案例--度娘翻译
- 经济法基础(2020年)——第三章 支付结算法律制度
- 经济法基础——第三章第一节、支付结算概述
- python二进制的位运算符
- NAS存储的定义和优势介绍
- 解决win10开机后死机:您操作系统的MSXML组件版本过低,导致启动失败。请到微软官方网站升级该组件后重试。
- 车牌识别github资源
- 0039c语言作业答案2020,中石油华东《程序设计(C语言)》2020年春季学期在线作业【答案】...
- 电脑开机黑屏,只有一个鼠标箭头