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

Day50 动态规划 part11

Day50 动态规划 part11

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

我的思路:
这道题考虑了交易次数 j(最大次数为2),以及某天 i 应该买or卖股票(两种状态)
用三维数组表示
dp[i][j][0] – 第i天结束时,交易j次,手里没有股票
状态方程 dp[i][j][0] = Math.max(dp[i - 1][j][0], dp[i - 1][j][1] + prices[i])
dp[i][j][1] – 第i天结束时,交易j次,手里有股票
状态方程 dp[i][j][1] = Math.max(dp[i - 1][j][1], dp[i - 1][j - 1][0] - prices[i])

解答:

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

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

我的思路:
和上一题代码一样,只是这题给定了最大交易次数k,只要把上一题的max换成k就行

解答:

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

相关文章:

  • Docker 搭建私有镜像仓库
  • Nginx反向代理与Tomcat实现ssm项目前后端分离部署
  • element UI 日期选择器 当前年份之前不可选
  • windows wireshark抓包rtmp推流出现TCP Retransmission
  • C++之std::initializer_list详解
  • 4月9日学习记录
  • 解析快手滑块验证码的逆向工程
  • mysql运维知识总结
  • 【目标检测】-入门知识
  • 翻译笔实现文字识别功能的原理
  • 文件批量重命名,繁体中文秒变简体中文,轻松实现高效翻译
  • UML学习
  • 【话题:工作生活】2022年工作总结--疫情下的上海,疫情中的我。
  • 13.磁盘逻辑卷管理
  • SFTP服务详解:安全高效的文件传输新选择
  • mp4转flv怎么转?电脑怎么把视频转成flv?
  • 计算机视觉——Python OpenCV BGR转HSV
  • DC9 Debian和sql注入
  • Windows系统上运行appium连接iOS真机自动化测试
  • vue3使用jsQR解析二维码
  • 李廉洋:4.10黄金原油早间走势最新分析及策略。
  • Kotlin作用域函数:let、also、run、apply、with
  • 鸿蒙ArkUI开发学习:【渲染控制语法】
  • https的配置和使用(以腾讯云为例)
  • STC89C52学习笔记(七)
  • 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记16:蓝桥杯编程手册
  • doris2.0.7 安装
  • 智慧园区水电能源监控管理系统
  • Kafka基础/1
  • Jupyter Notebook中常见的快捷键