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

宁波网站建设设计至诚服务wordpress 分类目录下不显示文章

宁波网站建设设计至诚服务,wordpress 分类目录下不显示文章,软件开发流程详细,网站建设首先要学会什么目录 题目描述 第一步,明确并理解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/a/598478.html

相关文章:

  • 深入解析 IP 协议:从基础核心机制到地址管理、路由选择的全方位指南
  • 邢台网站建设03191688版面设计软件
  • mysql5.7安装教程
  • P1919 【模板】高精度乘法 | A*B Problem 升级版 (FFT)
  • 网页游戏网站开发wordpress5.0.2安装
  • 阜新市建设学校管方网站注册保险代理公司需要什么条件
  • Plant Simulation 双深位立库开发系列教程-出库操作
  • python网站开发的优势wordpress 图集
  • 广州网站设计实力乐云seowordpress token插件
  • ofo的网站用什么做的app设计大赛
  • day11(11.11)——leetcode面试经典150
  • 十八个免费的舆情网站怎么做app推广
  • 将 Docker虚拟磁盘文件ext.vhdx迁移出C盘 ,更换到D盘
  • Linux--进程间通信(2)
  • 烟台品牌网站建设求职
  • byd APP逆向(AES白盒分析)
  • QueryWrapper 与 LambdaQueryWrapper 深度解析:优劣对比、选择指南及用户表实战案例
  • 【完整源码+数据集】车牌数据集,yolov8车牌检测数据集 7811 张,汽车车牌识别数据集,智慧交通汽车车牌识别系统实战教程
  • 婚庆网站策划便捷网站建设价格
  • 视频+教程 | 三位一体:MOI 数据源 + MO 向量存储 + Dify 应用层,构建企业级 RAG
  • 侨联网站建设网站开发实训报告总结2021
  • 怎么做会员积分网站房地产开发资质
  • 智能服务管理的临界点:当AI成为ITSM的“神经中枢”
  • 太原制作网站的公司百度云服务器做asp网站
  • 学途-人工智能机器学习课程
  • 什么是网站内页wordpress如何上传到服务器
  • 网站 宣传方案淘宝店铺 发布网站建设
  • 论find -group和-gid的区别
  • Spring Cloud中分布式事务的监控和日志使用小窍门
  • LeetCode(python)——560.和为k的子数组