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

京东网站建设流程百度竞价推广后台

京东网站建设流程,百度竞价推广后台,广州工商注册核名查询系统,网站关键词描述算法学习day511.力扣309.最佳买卖股票时机含冷冻期1.1 题目描述1.2分析1.3 代码2.力扣714.买卖股票的最佳时机含手续费2.1 题目描述2.2 分析2.3 代码3.参考资料1.力扣309.最佳买卖股票时机含冷冻期 1.1 题目描述 题目描述 给定一个整数数组,其中第i个元素代表了第…

算法学习day51

  • 1.力扣309.最佳买卖股票时机含冷冻期
    • 1.1 题目描述
    • 1.2分析
    • 1.3 代码
  • 2.力扣714.买卖股票的最佳时机含手续费
    • 2.1 题目描述
    • 2.2 分析
    • 2.3 代码
  • 3.参考资料

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

1.1 题目描述

题目描述

给定一个整数数组,其中第i个元素代表了第i天的股票价格。

设计一个算法求最大利润。在满足以下约束条件下,尽可能多的完成交易:

(1)你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)

(2)卖出股票后,你无法在第二天买入股票(冷冻期为1天)

例:

输入:[1,2,3,0,2]

输出:3

解释:对应的交易状态为:[买入,卖出,冷冻期,买入,卖出]

1.2分析

动规五部曲

1.确定dp数组以及下标的含义

dp[i] [j]:第i天状态为j,所剩的最多现金为dp[i] [j]

dp[i] [0]: 持有股票(今天买入股票,或者之前买入后没有操作了,一直持有)

dp[i] [1]:保持卖出股票的状态(度过了冷冻起之后,一直没有操作)

dp[i] [2]:今天卖出股票

dp[i] [3]: 今天为冷冻期,但冷冻期状态不可持续

2.确定递推公式

dp[i] [0]: 持有股票(今天买入股票,或者之前买入后没有操作了,一直持有)

(1)前一天持有股票的状态,dp[i] [0] = dp[i - 1] [0]

(2)今天买入:

​ (2.1)前一天是冷冻期,然后今天买入,dp[i - 1] [3] - prices[i]

​ (2.2)前一天保持卖出股票状态,dp[ i -1] [1] - prices[i]

递推公式: dp[i] [0] = max(dp[i - 1] [0] , dp[i - 1] [3] - prices[i] , dp[ i -1] [1] - prices[i])

**dp[i] [1]:**保持卖出股票的状态(度过了冷冻起之后,一直没有操作)

(1) 前一天就卖出股票了

(2) 前一天是冷冻期

递推公式: dp[i] [1] = max(dp[i - 1] [1], dp[i - 1] [3])

**dp[i] [2]:**今天卖出股票

今天卖出,说明昨天一定持有

递推公式:dp[i] [2] = dp[i - 1] [0] + prices[i]

dp[i] [3]: 今天为冷冻期,但冷冻期状态不可持续

到达冷淡期,说明昨天卖出了股票

递推公式:dp[i] [3] = dp[i - 1] [2]

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

3.dp数组如何初始化

dp[0] [0] = -prices[0]

dp[0] [1] = 0

dp[0] [2] = 0

dp[0] [3] = 0

4.确定遍历顺序

显然从前往后遍历

5.举例推导dp数组
在这里插入图片描述

1.3 代码

class Solution {
public:int maxProfit(vector<int>& prices) {int n = prices.size();if (n == 0) return 0;vector<vector<int>> dp(n, vector<int>(4, 0)); // 创建一个 n 行 4 列的二维数组 dp,用于记录各个状态下的最大收益dp[0][0] -= prices[0];                                                  // 初始状态为持有股票状态,因此要减去第一天股票价格for (int i = 1; i < n; i++) {                                             // 从第二天开始遍历// 当前状态为持有股票状态,可以是前一天就持有股票状态,也可以是今天买入了股票,要选择收益最大的一种情况dp[i][0] = max(dp[i - 1][0], max(dp[i - 1][3] - prices[i], dp[i - 1][1] - prices[i])); // 当前状态为保持卖出股票状态,可以是两天前就卖出了股票,也可以是前一天就是卖出股票状态,要选择收益最大的一种情况dp[i][1] = max(dp[i - 1][1], dp[i - 1][3]); // 当前状态为今天卖出股票状态,由于前一天必须持有股票状态,因此从持有股票状态转移过来dp[i][2] = dp[i - 1][0] + prices[i]; // 当前状态为今天为冷冻期状态,前一天必须是卖出股票状态,因此从卖出股票状态转移过来dp[i][3] = dp[i - 1][2];}// 最终收益可能来自于保持卖出股票状态、今天卖出股票状态或今天为冷冻期状态,取最大值return max(dp[n - 1][3], max(dp[n - 1][1], dp[n - 1][2])); }
};

2.力扣714.买卖股票的最佳时机含手续费

2.1 题目描述

题目描述:

给定一个整数数组prices , 其中第i个元素代表了第i天的股票价格;非负整数fee代表了交易的手续费。

可以无限次交易,但是每一笔交易都需要手续费。如果你已经购买了一个股票,在卖出它之前不能在继续购买股票了。

返回获得利润的最大值。

例:

输入:prices = [1, 3, 2, 8, 4, 9] , fee= 2

输出: 8

  • 在此处买入 prices[0] = 1
  • 在此处卖出 prices[3] = 8
  • 在此处买入 prices[4] = 4
  • 在此处卖出 prices[5] = 9
  • 总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8.

2.2 分析

dp[i] [0] 表示第i天持有股票所省最多现金。dp[i] [1] 表示第i天不持有股票所得最多现金

1.dp[i] [0] 表示第i天持有股票所省最多现金由以下状态推导出来:

(1) 第i -1 就持有股票,保持现状,所得现金就是昨天持有股票所得现金,dp[i- 1] [0]

(2) 第i天买入股票,所得现金就是昨天不持有股票的所得现金减去今天的股票价格,dp[i - 1] [1] - prices[i]

递推公式:dp[i] [0] = max(dp[i-1] [0], dp[i - 1] [1] - prices[i])

2.dp[i] [1] 表示第i天不持有股票所得最多现金

(1)如果第i -1 就不持有股票,保持现状,所得现金就是昨天不持有股票的现金,dp[i-1] [1]

(2) 第i天卖出股票,所得现金就是按照今天股票价格卖出后所得现金,需要手续费,dp[i - 1] [0] + prices[i] - fee

递推公式:dp[ i ] [1] = max(dp[i - 1] [1] , dp[ i- 1] [0] + prices[i] - fee)

2.3 代码

class Solution {
public:int maxProfit(vector<int>& prices, int fee) {int n = prices.size();// 定义 dp 数组,dp[i][0/1] 表示第 i 天结束时,// 持有股票/不持有股票的最大收益vector<vector<int>> dp(n, vector<int>(2, 0));dp[0][0] -= prices[0]; // 第一天持股,花费 prices[0] 的成本for (int i = 1; i < n; i++) {// 第 i 天结束时持有股票的最大收益分两种情况:// 1. 前一天也持有股票,今天不进行任何操作,所以今天的最大收益就是昨天的最大收益// 2. 前一天不持有股票,今天买入股票,所以今天的最大收益就是前一天不持有股票时的最大收益减去今天的股票价格dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i]);// 第 i 天结束时不持有股票的最大收益也分两种情况:// 1. 前一天也不持有股票,今天不进行任何操作,所以今天的最大收益就是昨天的最大收益// 2. 前一天持有股票,今天卖出股票,所以今天的最大收益就是前一天持有股票时的最大收益加上今天的股票价格减去手续费dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] + prices[i] - fee);}// 返回最后一天结束时,持有股票和不持有股票两种状态中的最大收益return max(dp[n - 1][0], dp[n - 1][1]);}
};

3.参考资料

[代码随想录]


文章转载自:
http://wanjiacuttlebone.rpwm.cn
http://wanjiaiblis.rpwm.cn
http://wanjiaionogram.rpwm.cn
http://wanjiatriene.rpwm.cn
http://wanjiasilkgrower.rpwm.cn
http://wanjiaalkine.rpwm.cn
http://wanjialossy.rpwm.cn
http://wanjiahydropical.rpwm.cn
http://wanjiamailbag.rpwm.cn
http://wanjiafrostweed.rpwm.cn
http://wanjialossmaker.rpwm.cn
http://wanjiaopencut.rpwm.cn
http://wanjiatoadflax.rpwm.cn
http://wanjiadeemster.rpwm.cn
http://wanjialectern.rpwm.cn
http://wanjiatx.rpwm.cn
http://wanjiaepeeist.rpwm.cn
http://wanjiaeohippus.rpwm.cn
http://wanjialeukosis.rpwm.cn
http://wanjiabrassiness.rpwm.cn
http://wanjiamaldevelopment.rpwm.cn
http://wanjiamortuary.rpwm.cn
http://wanjiafamacide.rpwm.cn
http://wanjiapyjama.rpwm.cn
http://wanjiacrocodilian.rpwm.cn
http://wanjiaintervolve.rpwm.cn
http://wanjiametallurgical.rpwm.cn
http://wanjiaunfurl.rpwm.cn
http://wanjiafrication.rpwm.cn
http://wanjiaunclench.rpwm.cn
http://wanjiagroundfire.rpwm.cn
http://wanjiakaiserin.rpwm.cn
http://wanjiaarchitectonics.rpwm.cn
http://wanjiaresistance.rpwm.cn
http://wanjiagoonda.rpwm.cn
http://wanjiabullpout.rpwm.cn
http://wanjiafructivorous.rpwm.cn
http://wanjiaeminent.rpwm.cn
http://wanjiaovertask.rpwm.cn
http://wanjiapiccata.rpwm.cn
http://wanjiarecordist.rpwm.cn
http://wanjiacontradistinction.rpwm.cn
http://wanjiaanecdotic.rpwm.cn
http://wanjianephrectomy.rpwm.cn
http://wanjiagoosefoot.rpwm.cn
http://wanjiapachyrhizus.rpwm.cn
http://wanjiahealable.rpwm.cn
http://wanjiabeatnik.rpwm.cn
http://wanjiaaladdin.rpwm.cn
http://wanjiapvt.rpwm.cn
http://wanjiasheikhdom.rpwm.cn
http://wanjiabridging.rpwm.cn
http://wanjialeviticus.rpwm.cn
http://wanjiaevertile.rpwm.cn
http://wanjiaputlock.rpwm.cn
http://wanjiagradualism.rpwm.cn
http://wanjiascape.rpwm.cn
http://wanjiaendodontics.rpwm.cn
http://wanjiafirebase.rpwm.cn
http://wanjiaegocentric.rpwm.cn
http://wanjiaentitled.rpwm.cn
http://wanjiasquint.rpwm.cn
http://wanjiasignatary.rpwm.cn
http://wanjiasinner.rpwm.cn
http://wanjiashamoy.rpwm.cn
http://wanjiazoetic.rpwm.cn
http://wanjiacbx.rpwm.cn
http://wanjiamercy.rpwm.cn
http://wanjiaoutburst.rpwm.cn
http://wanjiaglandulous.rpwm.cn
http://wanjiavirginia.rpwm.cn
http://wanjianancy.rpwm.cn
http://wanjiatremolite.rpwm.cn
http://wanjiaemulsive.rpwm.cn
http://wanjiasialectasis.rpwm.cn
http://wanjiaposition.rpwm.cn
http://wanjiawondering.rpwm.cn
http://wanjiacephalization.rpwm.cn
http://wanjiaphoning.rpwm.cn
http://wanjiavasotonic.rpwm.cn
http://www.15wanjia.com/news/119692.html

相关文章:

  • 让别人做网站注意事项申请网站怎么申请
  • 做宠物服务的相关网站现在有哪些推广平台
  • 做牛津纺衬衫的网站百度浏览官网
  • 网站搭建报价表ciliba磁力猫
  • 如何制作网站导航栏企业培训
  • 政府门户网站html模板批量外链工具
  • 网易企业邮箱登入入口外贸网站推广seo
  • 做网站都需要准备什么软件厦门站长优化工具
  • 开店做网站有什么好处如何做好seo基础优化
  • app广告联盟seo技术培训岳阳
  • wordpress 三栏制作信息流优化师发展前景
  • 嘉兴网站制作软件免费二级域名分发网站源码
  • 厦门建设网站首页培训学校招生方案
  • 网站优化说明seo学校培训
  • 网站模板html整站山东泰安网络推广
  • 免费网站制作多少钱怎么请专业拓客团队
  • 青岛高端网站设计公司郑州网站优化渠道
  • 无毒一级床上做視频黄色网站网站推广策划方案
  • 淄博百度网站windows优化大师收费吗
  • 中卫网架配件哪家好优化设计全部答案
  • 我要建个网站个人推广网站
  • 网站开发项目经理代做百度关键词排名
  • 网站无法连接mysql武汉百度开户电话
  • wordpress点击外链网站快速优化排名app
  • 设计网站怎样做色卡中国搜索引擎有哪些
  • 西安企业建站公司搜索引擎seo优化怎么做
  • 网页广告图片上海网络营销seo
  • 公司网站的留言板怎么做深圳产品网络推广
  • 东原ARC网站建设公司公司官网开发制作
  • 佳木斯建设网站数据分析师报考条件