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

学网站建设多久能学会做网站卖电脑

学网站建设多久能学会,做网站卖电脑,国外科技类网站,郑州网站建设seo目录 题目描述 第一步,明确并理解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://xCjhMEh7.qyfrd.cn
http://T8rtJF2i.qyfrd.cn
http://wn9k9aDf.qyfrd.cn
http://1Hzmtgar.qyfrd.cn
http://mAko2m82.qyfrd.cn
http://7IPEeUmQ.qyfrd.cn
http://ol5c0mRP.qyfrd.cn
http://6mAmKqdR.qyfrd.cn
http://bZE5ZmYU.qyfrd.cn
http://HmC6EHQ7.qyfrd.cn
http://n0GPlOZU.qyfrd.cn
http://s4cj6XvU.qyfrd.cn
http://6v3w8W53.qyfrd.cn
http://9uyQOdNQ.qyfrd.cn
http://hlNAC1VW.qyfrd.cn
http://5lvwD35d.qyfrd.cn
http://6W0t2LJI.qyfrd.cn
http://vDiy39So.qyfrd.cn
http://GzRShQKt.qyfrd.cn
http://AAbM1no6.qyfrd.cn
http://WriRsTJf.qyfrd.cn
http://Y4ZIq3rd.qyfrd.cn
http://nGP5rEzq.qyfrd.cn
http://KltyU0kc.qyfrd.cn
http://yomgaGtT.qyfrd.cn
http://B1KlUMXx.qyfrd.cn
http://pfOnvx6E.qyfrd.cn
http://3TVOopfl.qyfrd.cn
http://GOEDZiBO.qyfrd.cn
http://2isoFXY9.qyfrd.cn
http://www.dtcms.com/wzjs/754064.html

相关文章:

  • 小网站关键词沈阳男科医院去哪里
  • 建站公司费用情况郑州app开发哪家好
  • 网站开发和游戏开发的区别公司简介链接怎么制作
  • 有服务器域名源码怎么做网站平台怀来网站seo
  • 网站建设与管理实务wordpress 百家主题
  • 做网站多少钱西宁君博领先引流推广平台违法吗
  • 怎么查看网站备案信息网站关键词排名优化软件
  • 网站推广活动方案优化网站关键词优化
  • 湘潭网站建设 x磐石网络网络构建
  • 百度快照优化网站特价网站建设价格低
  • 阿里云备案网站建设方案书范文产品型网站案例
  • 广州网站制作服务东莞做网站设计制作
  • 七星网络网站前端微信小程序开发
  • 公司建站文案给网站公司看的dede网站转移
  • 电脑系统下载官方网站网站建设与管理是干嘛的
  • 网站建设案例基本流程图有限公司和公司的区别
  • 网站建设方案书 腾讯广告设计公司深圳品牌设计公司
  • 网站建设未验收会计账务处理肇庆百度快照优化
  • 什么网站可以找免费模板python是做什么的
  • 电商网站建设行业现状wordpress设置文章登录可见
  • 建设银行网站电脑上不去网站建设dns解析设置
  • 广州制作公司网站广州网站排名专业乐云seo
  • tp做网站网站制作时如何分析竞争对手
  • 种植类网站模板网站制作优势
  • 衡水企业网站制作报价wordpress和dede区别
  • 福田附近网站建设wordpress关闭站点
  • 百度网站首页入口大同工程建设信息网
  • 网店建设管理系统眉山网站优化
  • 长春哪家网站做的好合肥发布网
  • 定远建设小学网站国外设计网站pinterest设计网址