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

代码随想录算法训练营第四十二天-动态规划-股票-188.买卖股票的最佳时机IV

  • 题目要求进行k次买卖
  • 其实就是上一题的扩展,把2次扩展为k次
  • 定义动规数组依然是二维,第一个维度表示第几天,第二个维度表示第几次买入和卖出
  • 所以第二个维度的长度应该是2k+1
  • 在for循环内,要使用一个内循环来表示第几次买入或卖出,根据上一题的过程,可以发现其中的规律
class Solution {
public:int maxProfit(int k, std::vector<int>& prices) {int len = prices.size();if (len == 0) {return 0;}std::vector<std::vector<int>> dp(len, std::vector<int>(2 * k + 2, 0));for (int i = 0; i < 2 * k; i += 2) {dp[0][i + 1] = -prices[0];}for (int i = 1; i < len; ++i) {for (int j = 0; j < 2 * k; j += 2) {dp[i][j + 1] = std::max(dp[i - 1][j + 1], dp[i - 1][j] - prices[i]);dp[i][j + 2] = std::max(dp[i - 1][j + 2], dp[i - 1][j + 1] + prices[i]);}}return dp[len - 1][2 * k];}
};
  • 汇总
http://www.lryc.cn/news/530050.html

相关文章:

  • Gradle配置指南:深入解析settings.gradle.kts(Kotlin DSL版)
  • 软件工程经济学-日常作业+大作业
  • 论文阅读(三):微阵列数据的图形模型和多变量分析
  • 【大模型LLM面试合集】大语言模型架构_MHA_MQA_GQA
  • 向上调整算法(详解)c++
  • 【Transformer】手撕Attention
  • 844.比较含退格的字符串
  • 图书管理系统 Axios 源码__编辑图书
  • LabVIEW纤维集合体微电流测试仪
  • Commander 一款命令行自定义命令依赖
  • Day24 洛谷普及2004(内涵前缀和与差分算法)
  • 遗传算法与深度学习实战(33)——WGAN详解与实现
  • gitlab云服务器配置
  • SAP SD学习笔记27 - 请求计划(开票计划)之1 - 定期请求(定期开票)
  • HTML DOM 修改 HTML 内容
  • 基于VMware的ubuntu与vscode建立ssh连接
  • Flutter Candies 一桶天下
  • maven如何不把依赖的jar打包到同一个jar?
  • HTML5 技术深度解读:本地存储与地理定位的最佳实践
  • AIGC技术中常提到的 “嵌入转换到同一个向量空间中”该如何理解
  • 【机器学习理论】朴素贝叶斯网络
  • Docker 部署 GLPI(IT 资产管理软件系统)
  • 【Vaadin flow 实战】第5讲-使用常用UI组件绘制页面元素
  • 强化学习 DAY1:什么是 RL、马尔科夫决策、贝尔曼方程
  • 理解神经网络:Brain.js 背后的核心思想
  • 【Docker】dockerfile识别当前构建的镜像平台
  • 【VM】VirtualBox安装CentOS8虚拟机
  • 【C++篇】哈希表
  • Java篇之继承
  • 边缘检测算法(candy)