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

优秀网站欣赏全屋装修设计定制整装

优秀网站欣赏,全屋装修设计定制整装,沈阳网站搭建,商务网站建设兴田德润电话多少目录 题目描述 第一步,明确并理解dp数组及下标的含义 第二步,分析并理解递推公式 1.求dp[i][0] 2.求dp[i][1] 3.求dp[i][2] 第三步,理解dp数组如何初始化 第四步,理解遍历顺序 代码 题目描述 这道题与第122题的区别就是卖…

目录

题目描述

第一步,明确并理解dp数组及下标的含义

第二步,分析并理解递推公式

1.求dp[i][0]

2.求dp[i][1]

3.求dp[i][2]

第三步,理解dp数组如何初始化

第四步,理解遍历顺序

代码


题目描述

这道题与第122题的区别就是卖出股票后的一天不能买股票。仍然用动态规划解决。这类题目的关键是要分析每一天有几种状态,用dp数组变量记录这些状态。 

第一步,明确并理解dp数组及下标的含义

//dp[i][0]表示从第0天开始一直到第i天结束时,处于持有股票的状态,此时的最大利润

//dp[i][1]表示从第0天开始一直到第i天结束时,由于第i天卖出股票此时处于不持有股票的状态,此时的最大利润

//dp[i][2]表示从第0天开始一直到第i天结束时,由于第i天之前卖出股票并且第i天没有卖出股票此时处于不持有股票的状态,此时的最大利润

        int n = prices.size();//dp[i][0]表示从第0天开始一直到第i天结束时,处于持有股票的状态,此时的最大利润//dp[i][1]表示从第0天开始一直到第i天结束时,由于第i天卖出股票此时处于不持有股票的状态,此时的最大利润//dp[i][2]表示从第0天开始一直到第i天结束时,由于第i天之前卖出股票并且第i天没有卖出股票此时处于不持有股票的状态,此时的最大利润vector<vector<int>> dp(n,vector<int>(3,0));

第二步,分析并理解递推公式

1.求dp[i][0]

//第i天结束时处于持有股票的状态,有两种可能的原因:

//一是前一天(第i-1天)结束时就已经处于持有股票的状态(对应状态dp[i-1][0]),第i天什么也不做。

//二是第i天买入了股票(需支付prices[i]),第i天能买入股票的前提是第i-1天结束时就已经处于不持有股票的状态(并且第i-1天没有卖出股票)(对应状态dp[i-1][2])。

dp[i][0] = max(dp[i-1][0],dp[i-1][2] - prices[i]);

2.求dp[i][1]

//第i天结束时处于不持有股票的状态并且是因为第i天卖出了股票,第i天能卖出股票的前提是第i-1天结束时处于持有股票的状态(对应dp[i-1][0])

dp[i][1] = dp[i-1][0] + prices[i];

3.求dp[i][2]

//第i天结束时处于不持有股票的状态并且第i天没有卖出股票,有两种可能的原因:

//一是前一天(第i-1天)卖出了股票导致第i-1天结束时处于不持有股票的状态(对应状态dp[i-1][1])。

//二是前一天(第i-1天)的之前卖出了股票,而不是前一天的当天卖出了股票,导致第i-1天结束时处于不持有股票的状态(对应状态dp[i-1][2])。

dp[i][2] = max(dp[i-1][1],dp[i-1][2]);

        for(int i = 1;i < n;i++){//第i天结束时处于持有股票的状态,有两种可能的原因://一是前一天(第i-1天)结束时就已经处于持有股票的状态(对应状态dp[i-1][0]),第i天什么也不做。//二是第i天买入了股票(需支付prices[i]),第i天能买入股票的前提是第i-1天结束时就已经处于不持有股票的状态(并且第i-1天没有卖出股票)(对应状态dp[i-1][2])。dp[i][0] = max(dp[i-1][0],dp[i-1][2] - prices[i]);//第i天结束时处于不持有股票的状态并且是因为第i天卖出了股票,第i天能卖出股票的前提是第i-1天结束时处于持有股票的状态(对应dp[i-1][0])dp[i][1] = dp[i-1][0] + prices[i];//第i天结束时处于不持有股票的状态并且第i天没有卖出股票,有两种可能的原因://一是前一天(第i-1天)卖出了股票导致第i-1天结束时处于不持有股票的状态(对应状态dp[i-1][1])。//二是前一天(第i-1天)的之前卖出了股票,而不是前一天的当天卖出了股票,导致第i-1天结束时处于不持有股票的状态(对应状态dp[i-1][2])。dp[i][2] = max(dp[i-1][1],dp[i-1][2]);}

第三步,理解dp数组如何初始化

dp[0][0] = -prices[0];//第0天结束时处于持有股票的状态,那只能是因为第0天买入了股票(需支付prices[0]),利润为负prices[0]

dp[0][1] = 0;//第0天结束时处于不持有股票的状态,并且是因为第0天卖出了股票,可以理解为第0天先买入了股票然后又卖出了,最终利润是0

dp[0][2] = 0;//第0天结束时处于不持有股票的状态,并且第0天没有卖出股票,只能是因为第i天什么也没做,利润保持为初始值0

第四步,理解遍历顺序

第i天的状态依赖于第i-1天的状态,因此i的遍历顺序应该从小到大。

代码

class Solution {
public:int maxProfit(vector<int>& prices) {int n = prices.size();//dp[i][0]表示从第0天开始一直到第i天结束时,处于持有股票的状态,此时的最大利润//dp[i][1]表示从第0天开始一直到第i天结束时,由于第i天卖出股票此时处于不持有股票的状态,此时的最大利润//dp[i][2]表示从第0天开始一直到第i天结束时,由于第i天之前卖出股票并且第i天没有卖出股票此时处于不持有股票的状态,此时的最大利润vector<vector<int>> dp(n,vector<int>(3,0));dp[0][0] = -prices[0];//第0天结束时处于持有股票的状态,那只能是因为第0天买入了股票(需支付prices[0]),利润为负prices[0]dp[0][1] = 0;//第0天结束时处于不持有股票的状态,并且是因为第0天卖出了股票,可以理解为第0天先买入了股票然后又卖出了,最终利润是0dp[0][2] = 0;//第0天结束时处于不持有股票的状态,并且第0天没有卖出股票,只能是因为第i天什么也没做,利润保持为初始值0for(int i = 1;i < n;i++){//第i天结束时处于持有股票的状态,有两种可能的原因://一是前一天(第i-1天)结束时就已经处于持有股票的状态(对应状态dp[i-1][0]),第i天什么也不做。//二是第i天买入了股票(需支付prices[i]),第i天能买入股票的前提是第i-1天结束时就已经处于不持有股票的状态(并且第i-1天没有卖出股票)(对应状态dp[i-1][2])。dp[i][0] = max(dp[i-1][0],dp[i-1][2] - prices[i]);//第i天结束时处于不持有股票的状态并且是因为第i天卖出了股票,第i天能卖出股票的前提是第i-1天结束时处于持有股票的状态(对应dp[i-1][0])dp[i][1] = dp[i-1][0] + prices[i];//第i天结束时处于不持有股票的状态并且第i天没有卖出股票,有两种可能的原因://一是前一天(第i-1天)卖出了股票导致第i-1天结束时处于不持有股票的状态(对应状态dp[i-1][1])。//二是前一天(第i-1天)的之前卖出了股票,而不是前一天的当天卖出了股票,导致第i-1天结束时处于不持有股票的状态(对应状态dp[i-1][2])。dp[i][2] = max(dp[i-1][1],dp[i-1][2]);}return max(dp[n-1][1],dp[n-1][2]);}
};
http://www.dtcms.com/wzjs/793944.html

相关文章:

  • 马蹄网seo网站的优化流程
  • 企业网站设计营销微信app网站建设
  • 海口本地网站关于门户网站建设通报
  • 婚恋网站女代我做彩票地方网站收录
  • 咨询类网站模板电脑网站首页设计
  • 郑州网站网页设计dz多语言企业网站
  • 建设电商网站需要什么硬件wordpress删除文章的分类目录
  • 全国感染高峰进度优化英文
  • 哪个网站可以做笔译兼职深圳十大人力资源公司
  • 好的响应式网站有哪些自动化系统网站建设
  • 上海外贸网站推广公司锋创科技园网站建设
  • 做微商进哪个网站安全吗搭建网页游戏
  • 江川区住房和城乡建设局网站百度云网站建设视频教程
  • 东莞谢岗网站建设网页版qq登录界面
  • 游戏的网站网站里的字体大小
  • seo网站建设方案送给做网站的锦旗语
  • 建网站要什么工做人员郴州网站建设哪家比较好
  • 微网站建设公司哪家好哈尔滨关键词优化价格
  • 做网站学哪个语言最好tp5做企业类网站
  • 个人网站用凡科建站好吗桂林市生活网官方网站
  • 天津做网站就到徽信xiala5长春网站建设优化排名
  • 公司网站荣誉墙怎么做住房和城市建设部网站
  • 南京学校网站建设策划网站更改备案信息
  • 关于推动门户网站建设d世界500强中国排名一览表
  • 帮企业建设网站保密合同申请企业邮箱步骤是什么
  • 济南专业网站设计公司wordpress 内容注入
  • 优秀网站的必备要素动画设计招聘
  • 没有网站做分类信息群发高企达建设有限公司网站
  • 河北网站建设案例重庆网站seo推广公司
  • 没有网站如何做落地页怎样查看别人网站流量