买卖股票的最佳时机 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. 一根烟上热搜,先让AI看看你的肺
  2. 010——VUE中使用lodash库减少watch对后台请求的压力
  3. jittor和pytorch生成网络对比之dcgan
  4. 对表单控制是否提交 需要在方法名前面加上 return
  5. server vscode中的live_VSCode 建议你启用 gopls,它到底是个什么东东?
  6. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (三) 部署运行WEB API项目
  7. 使用ISE一键生成bit文件
  8. [转载]抓大放小,要事为先
  9. 广东鸿图:搭建业务报表,摆脱人工计数,工作效率提升150%
  10. python 拆分list,按照对应位置重组
  11. BeyondCompare3提示许可密钥过期完美解决方法:3281-0350
  12. linux shell 字典 定义 新增元素
  13. css数字怎么换行,css实现连续的英文或数字自动换行的方法
  14. 联想服务器怎么装系统和配置,联想服务器的配置及操作系统的安装.pdf
  15. 商家开通直播前需了解哪些市场数据?
  16. Tensorflow 进阶学习
  17. 子线程何时开启、何时结束
  18. 视频信号指标与测试方法
  19. 在Windows下使用Python编程
  20. 2020年腾讯实习生算法笔试题目(感触良多)

热门文章

  1. excel导入到mysql数据库
  2. windows10批处理文件设置IP地址
  3. Unity URP Shader Graph Unit 阴影 light Atten
  4. 计算机网络ip地址划分计算机,计算机网络中IP地址大全
  5. App启动界面加载自己想要的图片
  6. wxPython 基本控件
  7. 共享文件夹w7和服务器系统区别,w7服务器怎样共享文件夹共享文件夹
  8. 如何裁剪视频画面尺寸?快把这些方法收好
  9. scikit-learn 的设计
  10. 【一周头条盘点】中国软件网(2018.8.20~2018.8.24)