买卖股票的最佳时机 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相关推荐

  1. 算法训练第五十天 | 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

    动态规划part11 123.买卖股票的最佳时机III 题目描述 思路 拓展 188.买卖股票的最佳时机IV 题目描述 思路 易错点 123.买卖股票的最佳时机III 题目链接:123.买卖股票的最佳 ...

  2. 算法训练Day50 | LeetCode123. 买卖股票的最佳时机III(最多买卖2次);LeetCode188. 买卖股票的最佳时机IV(最多买卖K次)

    目录 LeetCode123. 买卖股票的最佳时机III 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考与收获 LeetCode188. 买卖股票的最佳时机IV 1. 思路 2. 代码实现 ...

  3. Leetcode 188.买卖股票的最佳时机IV

    买卖股票的最佳时机IV 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多笔交易(你必 ...

  4. 买卖股票的最佳时机IV

    思路 这道题目可以说是动态规划:123.买卖股票的最佳时机III的进阶版,这里要求至多有k次交易. 确定dp数组以及下标的含义 在动态规划:123.买卖股票的最佳时机III中,我是定义了一个二维dp数 ...

  5. 【第50天| ● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV 】

    123.买卖股票的最佳时机III class Solution {public:int maxProfit(vector<int>& prices) {vector<int& ...

  6. Python每日一练(20230307) 重复DNA序列、搜索二维矩阵、买卖股票的最佳时机IV

    目录 1. 重复的DNA序列  ★★ 2. 搜索二维矩阵  ★★ 3. 买卖股票的最佳时机 IV  ★★★

  7. 第43天| 123.买卖股票的最佳时机III、 188.买卖股票的最佳时机IV

    1.题目链接:123. 买卖股票的最佳时机 III 题目描述: 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 两笔 交易 ...

  8. LeetCode 188. 买卖股票的最佳时机 IV(动态规划)

    1. 题目 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多笔交易(你必须在再次购买 ...

  9. 188. 买卖股票的最佳时机 IV(JavaScript)

    给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前 ...

最新文章

  1. 关于bitnami redmine 的一些问题
  2. DSTREAM-PT仿真器——ARM公司推出的最高性能的调试跟踪解决方案
  3. vue切换菜单时不需要页面刷新_antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作...
  4. mysql study_mysql_study_3
  5. Atitit 信息化数据采集与分析解析 技术 处理技术 爬虫与http rest json xml h5解析 db数据库 mail协议与处理 数据压缩与解压 数据处理 文本处理
  6. Datalogic得利捷全新自动调焦产品 开启扩展扫码新体验
  7. IT战略规划与企业架构
  8. Sublime Text 3 配置C语言运行环境
  9. VC写的手机qq聊天记录导出工具
  10. 记一次halo博客ssl证书过期处理过程
  11. CentOS7升级MariaDB 10.2版本详细步骤
  12. pscs6安装序列号
  13. 数据可视化之基础图表
  14. Debug与Release版本的区别
  15. Fire And Motion(英文原版) [转]
  16. 挂载 4G 网卡上网
  17. 什么是绝对、相对定位
  18. 使用包configparser,出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 155: illegal mu
  19. vue路由匹配实现包容性_简约设计,最大利润,包容性问题
  20. 【MPU6050能读ID 但读数据值为零(一个硬件问题)】

热门文章

  1. Ubuntu20.04+ROS Noetic的安装与配置(win10系统下)
  2. requests案例--度娘翻译
  3. 经济法基础(2020年)——第三章 支付结算法律制度
  4. 经济法基础——第三章第一节、支付结算概述
  5. python二进制的位运算符
  6. NAS存储的定义和优势介绍
  7. 解决win10开机后死机:您操作系统的MSXML组件版本过低,导致启动失败。请到微软官方网站升级该组件后重试。
  8. 车牌识别github资源
  9. 0039c语言作业答案2020,中石油华东《程序设计(C语言)》2020年春季学期在线作业【答案】...
  10. 电脑开机黑屏,只有一个鼠标箭头