当前位置: 首页 > news >正文

代码随想三刷动态规划篇8

代码随想三刷动态规划篇8

  • 122. 买卖股票的最佳时机 II
    • 题目
    • 代码
  • 123. 买卖股票的最佳时机 III
    • 题目
    • 代码
  • 188. 买卖股票的最佳时机 IV
    • 题目
    • 代码
  • 309. 买卖股票的最佳时机含冷冻期
    • 题目
    • 代码

122. 买卖股票的最佳时机 II

题目

链接

代码

class Solution {public int maxProfit(int[] prices) {if(prices.length==1){return 0;}int[][] dp = new int[prices.length][2];dp[0][0] = 0;dp[0][1] = -prices[0];for(int i =1;i<prices.length;i++){dp[i][0] = Math.max(dp[i-1][0],dp[i-1][1]+prices[i]);dp[i][1] = Math.max(dp[i-1][1],dp[i-1][0]-prices[i]);}return dp[prices.length-1][0];}
}

123. 买卖股票的最佳时机 III

题目

链接

代码

class Solution {public int maxProfit(int[] prices) {if(prices.length==1){return 0;}// 0 未持有// 1 第一次持有// 2 第一次未持有// 3 第二次持有// 4 第二次未持有int[][] dp = new int[prices.length][5];dp[0][1] = -prices[0];dp[0][3] = -prices[0];for(int i =1;i<prices.length;i++){dp[i][1] = Math.max(dp[i-1][1],dp[i][0]-prices[i]);dp[i][2] = Math.max(dp[i-1][2],dp[i][1]+prices[i]);dp[i][3] = Math.max(dp[i-1][3],dp[i][2]-prices[i]);dp[i][4] = Math.max(dp[i-1][4],dp[i][3]+prices[i]);}return dp[prices.length-1][4];}
}

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

题目

链接

代码

class Solution {public int maxProfit(int k, int[] prices) {if(prices.length==1){return 0;}// 0 未持有// 1 第一次持有// 2 第一次未持有// 3 第二次持有// 4 第二次未持有// ...int[][] dp = new int[prices.length][k*2+1];for(int i= 1;i<k*2+1;i+=2){dp[0][i] = -prices[0];}for(int i =1;i<prices.length;i++){for(int j =1;j<k*2+1;j+=2){dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]-prices[i]);dp[i][j+1] = Math.max(dp[i-1][j+1],dp[i][j]+prices[i]);}}return dp[prices.length-1][k*2];}
}

309. 买卖股票的最佳时机含冷冻期

题目

链接

代码

class Solution {public int maxProfit(int[] prices) {if(prices.length==1){return 0;}int[][] dp = new int[prices.length][2];dp[0][1] = -prices[0];dp[1][0] = Math.max(dp[0][0], dp[0][1] + prices[1]);dp[1][1] = Math.max(dp[0][1], -prices[1]);for(int i = 2;i<prices.length;i++){dp[i][0] = Math.max(dp[i-1][0],dp[i-1][1] + prices[i]);dp[i][1] = Math.max(dp[i-1][1],dp[i-2][0]-prices[i]);}return dp[prices.length-1][0];}
}
http://www.lryc.cn/news/391578.html

相关文章:

  • ​​服务拆分的原则
  • 离线安装docker社区版
  • 徒手绘制 Android 通用进度条
  • 【TB作品】矩阵键盘电话拨号,ATMEGA16单片机,Proteus仿真 atmega16矩阵键盘电话拨号
  • JavaScript(6)——数据类型转换
  • 概率论与数理统计_下_科学出版社
  • Android 复习layer-list使用
  • 汉光联创HGLM2200N黑白激光多功能一体机加粉及常见问题处理
  • 引领汽车软件开发走向ASPICE认证之路
  • 【C/C++ new/delete和malloc/free的异同及原理】
  • Maven Archetype 自定义项目模板:高效开发的最佳实践
  • vue的ESLint 4格缩进 笔记
  • 【前端项目笔记】8 订单管理
  • 构建Yarn依赖树:深入解析与实践指南
  • 社区活动|FlowUs知识库的发展|先进技术的落地应用|下一代生产力工具你用了吗
  • Python基础语法(与C++对比)(持续更新ing)
  • LeetCode-Leetcode 1120:子树的最大平均值
  • AI在软件开发中的角色:助手还是取代者?
  • jboss 7.2
  • 鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥生成介绍及算法规格】
  • 电气-伺服(4)CANopen
  • JavaFx基础知识
  • 学会python——用python制作一个登录和注册窗口(python实例十八)
  • Vue3+Element-plus的表单重置
  • pytorch中的contiguous()
  • Windows系统安装分布式搜索和分析引擎Elasticsearch与远程访问详细教程
  • 深入理解计算机系统 CSAPP 家庭作业8.26
  • 界面材料知识
  • 【Git】远程仓库操作
  • clonezilla(再生龙)克隆物理机linux系统,然后再去另一台电脑安装