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

代码随想录算法训练营第四十二天-动态规划-股票-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.kler.cn/a/528690.html

相关文章:

  • pytorch深度Q网络
  • 自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数
  • Python 梯度下降法(二):RMSProp Optimize
  • android Camera 的进化
  • 向上调整算法(详解)c++
  • 如何使用tushare pro获取股票数据——附爬虫代码以及tushare积分获取方式
  • JVM运行时数据区域-附面试题
  • 笔记:同步电机调试时电角度校正方法说明
  • Python GIL(全局解释器锁)机制对多线程性能影响的深度分析
  • 《逆向工程核心原理》第三~五章知识整理
  • MATLAB实现多种群遗传算法
  • SQLAlchemy通用分页函数实现:支持搜索、排序和动态页码导航
  • 可视化相机pose colmap形式的相机内参外参
  • MySQL各种日志详解
  • 32.Word:巧克力知识宣传【32】
  • 基于STM32的电动窗帘控制器
  • GAMES101学习笔记(五):Texture 纹理(纹理映射、重心坐标、纹理贴图)
  • 14.[前端开发]Day14HTML+CSS阶段练习(网易云音乐三)
  • 使用WGAN(Wasserstein Generative Adversarial Network)网络对天然和爆破的地震波形图进行分类
  • 【2002年江西省电子专题赛 - 现场制作】八路智力竞赛抢答器
  • 雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能
  • 使用windows笔记本让服务器上网
  • Elasticsearch基本使用详解
  • MySQL(高级特性篇) 15 章——锁
  • 2025全自动企业站群镜像管理系统 | 支持繁简转换拼音插入
  • Ollama使用快速入门