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

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

题目来源:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-cooldown/description/

C++题解:动态规划

状态1:表示持有股票。更新为之前持有股票(dp[i-1][0])或者不持有股票且不处于冷冻期后买入(dp[i-1][2]-prices[i])。

状态2:表示不持有股票且处于冷冻期,即卖出。更新为持有股票后卖出(dp[i-1][0]+prices[i])。

状态3:表示不持有股票且不处于冷冻期,即保持之前已经持有股票的状态。更新为不持有股票的两个状态较大值(dp[i-1][1] 或 dp[i-1][2])。

返回值为状态2或状态3中的较大值。

class Solution {
public:int maxProfit(vector<int>& prices) {int n = prices.size();if(n <= 1) return 0;// dp[i][0]表示持有股票,dp[i][1]表示不持有股票且处于冷冻期-即卖出,dp[i][2]表示不持有股票且不处于冷冻期,即保持之前已经持有股票的状态vector<vector<int>> dp(n, vector<int>(3, 0));dp[0][0] = -prices[0];for(int i = 1; i < n; i++){dp[i][0] = max(dp[i-1][0], dp[i-1][2]-prices[i]); cout<<dp[i][0]<<" ";dp[i][1] = dp[i-1][0] + prices[i]; cout<<dp[i][1]<<" ";dp[i][2] = max(dp[i-1][1], dp[i-1][2]); cout<<dp[i][2]<<" "<<i<<endl;}return max(dp[n-1][1], dp[n-1][2]);}
};

http://www.lryc.cn/news/303491.html

相关文章:

  • 2024年刷题记录
  • 【JGit 】简述及学习资料整理
  • python数据类型-集合set
  • excel如何指定求和
  • 服务端实时推送技术之SSE(Server-Send Events)
  • 使用IntelliJ IDEA查看接口的全部实现方法
  • 阿里云幻兽帕鲁服务器操作系统类型怎么选择?
  • Codeforces Round 927 (Div. 3) LR-remainders的题解
  • HarmonyOS—@Observed装饰器和@ObjectLink嵌套类对象属性变化
  • The method toList() is undefined for the type Stream
  • vue+element (el-progress)标签 隐藏百分比(%) ,反向显示 ,自定义颜色, demo 复制粘贴拿去用
  • Android轻量级进程间通信Messenger源码分析
  • C#开发AGV地图编辑软件
  • 嵌入式学习day22 Linux
  • 不确定性问题的论文笔记
  • C语言推荐书籍
  • 基于uniapp微信小程序的汽车租赁预约系统
  • ClickHouse 基础(一)
  • 07-k8s中secret资源02-玩转secret
  • HTTP特性
  • ARM 之十六 详解 CMSIS 版本变迁、各组件使用示例
  • 【北京游戏业:出海竞争实力全面】
  • 课程大纲:图像处理中的矩阵计算
  • 【Go语言】Go语言的数据类型
  • 2024年2月19日 - mis
  • 【JavaWeb】网上蛋糕商城-项目搭建
  • 【Flink状态管理五】Checkpoint的设计与实现
  • How to install a specific version of a package in R
  • SIGSEGV 段错误
  • OpenCV 4基础篇| OpenCV简介