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

代码随想录算法训练营day41

1.买卖股票的最佳时机

1.1 题目

. - 力扣(LeetCode)

1.2 题解

class Solution {
public:int maxProfit(vector<int>& prices){//定义dp数组,dp[i][0]表示第i天不持有股票身上的现金,dp[i][1]表示第i天持有股票身上的现金vector<vector<int>> dp(prices.size(), vector<int>(2, 0));//初始化dp[0][0] = 0;dp[0][1] = -prices[0];//开始遍历for (int i = 1; i < prices.size(); i++){dp[i][0]=max(dp[i-1][0],dp[i-1][1] + prices[i]);dp[i][1]=max(dp[i-1][1],-prices[i]);}return dp[prices.size()-1][0];}
};

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

2.1 题目

. - 力扣(LeetCode)

2.2 题解

class Solution
{
public:int maxProfit(vector<int>& prices){//确定dp数组,dp[i][0]表示第i天手上没有股票身上的钱,dp[i][1]表示第i天有股票身上的钱vector<vector<int>> dp(prices.size(), vector<int>(2, 0));//确定递推公式// dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] + prices[i]);// dp[i][1] = max(dp[i - 1][1], dp[i-1][0]-prices[i]);//初始化dp[0][0] = 0;dp[0][1] = -prices[0];//开始遍历for (int i = 1; i < prices.size(); i++){dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] + prices[i]);dp[i][1] = max(dp[i - 1][1], dp[i-1][0]-prices[i]);}return dp[prices.size() - 1][0];}
};

3.买卖股票的最佳时机

3.1 题目

. - 力扣(LeetCode)

3.2 题解

class Solution {
public:int maxProfit(vector<int>& prices) {int len = prices.size();//定义dp数组vector<vector<int>> dp(len, vector<int>(5, 0));//dp数组有5个状态//dp[i][0]表示第i天不进行操作//dp[i][1]表示第i天第一次持有股票//dp[i][2]表示第i天第一次不持有股票//dp[i][3]表示第i天第二次持有股票//dp[i][4]表示第i天第二次不持有股票//确定递推逻辑/*dp[i][0] = dp[i - 1][0];dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] - prices[i]);dp[i][2] = max(dp[i - 1][2], dp[i-1][1] + prices[i]);dp[i][3] = max(dp[i - 1][3], dp[i - 1][2] - prices[i]);dp[i][4] = max(dp[i - 1][4], dp[i - 1][3] + prices[i]);*///初始化dp[0][0] = 0;dp[0][1] = -prices[0];dp[0][2] = 0;dp[0][3] = -prices[0];dp[0][4] = 0;//开始遍历for (int i = 1; i < len; i++){dp[i][0] = dp[i - 1][0];dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] - prices[i]);dp[i][2] = max(dp[i - 1][2], dp[i - 1][1] + prices[i]);dp[i][3] = max(dp[i - 1][3], dp[i - 1][2] - prices[i]);dp[i][4] = max(dp[i - 1][4], dp[i - 1][3] + prices[i]);}return dp[len - 1][4];}
};

http://www.mrgr.cn/news/39286.html

相关文章:

  • 推荐常用的搜索渠道
  • 【Mybatis篇】动态SQL的详细带练
  • 0924-25,QT的数据类型,实现一个井字棋和计算器(只输入)
  • 解决Qt每次修改代码后首次运行崩溃,后几次不崩溃问题
  • OpenFeign学习
  • 4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
  • 双指针---(部分地更新)
  • next 从入门到精通
  • 项目集成SpringSecurity框架
  • YAPF,一个超强大的Python库
  • ​一篇关于BootRom的概念性文章。
  • 王道-操作系统
  • 内存泄漏和内存溢出简述
  • 基于单片机的可调式中文电子日历系统
  • STM32+ADC+扫描模式
  • 技术速递|Python in Visual Studio Code 2024年9月发布
  • 数仓建模:DataX同步Mysql数据到Hive如何批量生成建表语句?| 基于SQL实现
  • 二分查找详解(Java版)
  • 【Linux】Docker下载与使用-nginx
  • 【在Linux世界中追寻伟大的One Piece】命名管道