申请微信支付公司网站宜昌制作网站公司

张小明 2026/1/10 18:38:22
申请微信支付公司网站,宜昌制作网站公司,网站建设的实验的结论,在线设计平台优缺点代码随想录算法训练营第三十五天任务121. 买卖股票的最佳时机122.买卖股票的最佳时机II123.买卖股票的最佳时机III121. 买卖股票的最佳时机 题目链接#xff1a;121. 买卖股票的最佳时机 贪心思路#xff1a;前期尽可能地低价买入#xff0c;后期尽可能地高价卖出。 class…代码随想录算法训练营第三十五天任务121. 买卖股票的最佳时机122.买卖股票的最佳时机II123.买卖股票的最佳时机III121. 买卖股票的最佳时机题目链接121. 买卖股票的最佳时机贪心思路前期尽可能地低价买入后期尽可能地高价卖出。classSolution{public:intmaxProfit(vectorintprices){intlowINT_MAX;intprofit0;for(inti0;iprices.size();i){lowmin(low,prices[i]);// 寻找低点profitmax(profit,prices[i]-low);}returnprofit;}};时间复杂度O(n)空间复杂度O(1)动态规划确定dp数组的下标及其含义dp[i][0]表示第i天持有股票拥有的最多金额。持有不代表当天买入还有可能前几天买入没买出一直持有dp[i][1]表示第i天不持有股票拥有的最多金额。确定递推公式第i天持有股票由 “第i天之前持有股票” 和 “第i天买入股票”两种状态推导而来: dp[i][0] max(dp[i-1][0], - prices[i])另外注意题目要求是一次交易所以第i天买入股票不能由dp[i-1][1]-prices[i] 而来。第i天不持有股票由 “第i天之前不持有股票” 和 “第i天卖出股票”两种状态推导而来: dp[i][1] max(dp[i-1][1], dp[i-1][0] prices[i])初始化由递推公式可知第i天由第i-1天推导而来dp[0][1]: 表示第0天不持有股票, 所以dp[0][1] 0dp[0][0]: 表示第0天持有股票所以dp[0][0] -prices[0]确定遍历顺序从前往后举例推导输入[7,1,5,3,6,4]idp[i][0]dp[i][1]0-701-102-143-144-155-15classSolution{public:intmaxProfit(vectorintprices){vectorvectorintdp(prices.size(),vectorint(2,0));dp[0][0]-prices[0];// 表示第0天持有股票dp[0][1]0;// 表示第0天不持有股票for(inti1;iprices.size();i){dp[i][0]max(dp[i-1][0],-prices[i]);dp[i][1]max(dp[i-1][1],dp[i-1][0]prices[i]);}returndp[prices.size()-1][1];}};时间复杂度O(n)空间复杂度O(n)还可以用翻滚数组使空间复杂度为O(1)122.买卖股票的最佳时机II题目链接122.买卖股票的最佳时机II这道题和上一道题的区别就在于可以多次交易。由上述动规五步曲可知只一点不同就是 第i天持有股票由 “第i天之前持有股票” 和 “第i天买入股票”两种状态推导而来: dp[i][0] max(dp[i-1][0], dp[i-1][1] - prices[i]) 第i天买入股票可由前一天不持有股票金额推导而来。classSolution{public:intmaxProfit(vectorintprices){vectorvectorintdp(prices.size(),vectorint(2,0));dp[0][0]-prices[0];// 表示第0天持有股票dp[0][1]0;// 表示第0天不持有股票for(inti1;iprices.size();i){dp[i][0]max(dp[i-1][0],dp[i-1][1]-prices[i]);// 与 121. 买卖股票的最佳时机不同之处dp[i][1]max(dp[i-1][1],dp[i-1][0]prices[i]);}returndp[prices.size()-1][1];}};时间复杂度O(n)空间复杂度O(n)还可以用翻滚数组使空间复杂度为O(1)123.买卖股票的最佳时机III题目链接123.买卖股票的最佳时机III这道题要求 最多可以完成 两笔 交易。这个限制就像背包一样不超过。想不出来看题解了原来是分状态。动规5步曲安排确定dp数组的下标及其含义每天有5种状态状态含义0不操作1第一次持有2第一次不持有3第二次持有4第二次不持有dp[i][j]表示第 i 天的第 j 种状态下的最大金额。确定递推公式dp[i][1] : 第 i 天第一次持有股票由 “第 i 天之前第一次持有股票” 和 “第 i 天买入股票”两种状态推导而来。dp[i][1] max(dp[i-1][1], dp[i-1][0] - prices[i])dp[i][2]: 第 i 天第一次不持有股票由 “第 i 天之前第一次不持有股票” 和 “第 i 天卖出股票”两种状态推导而来。dp[i][2] max(dp[i-1][2], dp[i-1][1] prices[i])dp[i][3]: 第 i 天第二次持有股票由 “第 i 天之前第二次持有股票” 和 “第 i 天买入股票”两种状态推导而来。dp[i][3] max(dp[i-1][3], dp[i-1][2] - prices[i])dp[i][4]: 第 i 天第二次不持有股票由 “第 i 天之前第二次不持有股票” 和 “第 i 天卖出股票”两种状态推导而来。dp[i][4] max(dp[i-1][4], dp[i-1][3] prices[i])初始化dp[0][0]: 表示第0天不操作dp[0][0] 0.dp[0][1]: 表示第0天第一次持有, dp[0][1] -prices[0]dp[0][2]: 表示第0天第一次不持有, dp[0][2] 0dp[0][3]: 表示第0天第二次持有, dp[0][3] -prices[0]dp[0][4]: 表示第0天第二次不持有, dp[0][4] 0dp[i][0] : 表示第 i 天什么都不操作不是第一次持有/不持有第二次持有/不持有的任何一个状态无操作dp[i][0] 0. 这列数后续也没用到。确定遍历顺序从前往后举例推导prices [3,3,5,0,0,3,1,4]iprices[i]dp[i][0]dp[i][1]dp[i][2]dp[i][3]dp[i][4]030-30-30130-32-32250-32-3230002224000222530032561003257400426classSolution{public:intmaxProfit(vectorintprices){vectorvectorintdp(prices.size(),vectorint(5,0));// dp[0][0] 0; // 表示第0天不操作dp[0][1]-prices[0];// 表示第0天第一次持有// dp[0][2] 0; // 表示第0天第一次不持有dp[0][3]-prices[0];// 表示第0天第二次持有// dp[0][4] 0; // 表示第0天第二次不持有for(inti1;iprices.size();i){dp[i][1]max(dp[i-1][1],dp[i-1][0]-prices[i]);dp[i][2]max(dp[i-1][2],dp[i-1][1]prices[i]);dp[i][3]max(dp[i-1][3],dp[i-1][2]-prices[i]);dp[i][4]max(dp[i-1][4],dp[i-1][3]prices[i]);}returndp[prices.size()-1][4];}};时间复杂度O(n)空间复杂度O(n)还可以用翻滚数组使空间复杂度为O(1)
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

成都网站定制费用产品介绍网站html

12课时吃透DIFY!零代码搭建AI客服 工作流,大模型应用实战全流程 随着人工智能技术的迅速发展,企业和个人对自动化工具的需求愈发强烈。零代码平台(DIFY)凭借其简易的操作界面与强大的功能,成为了无数用户实…

张小明 2026/1/9 13:45:35 网站建设

福州网站建设的公司北京制作网站公司哪家好

目录 一、产供销一体化不是合并部门 第一步:搞准需求 怎么把需求搞准? 怎么办? 第二步:打通数据和流程 简单来说,流程要形成闭环,不能断档 常见问题 问题一:让部门利益凌驾于公司目标之…

张小明 2026/1/9 13:45:33 网站建设

各大网站查重率比较福清哪有做网站的地方

还在为联发科设备的底层调试而头疼吗?📱 面对各种复杂的命令行操作,是不是觉得无从下手?今天,让我带你走进MTKClient的世界,这款革命性的工具将彻底改变你对设备调试的认知! 【免费下载链接】mt…

张小明 2026/1/9 13:45:31 网站建设

wordpress 站内通知营销手机网站制作

你是否曾经在写邮件时突然发现打出的全是英文?或者在编程时因为大小写错误而调试半天?输入法状态的不确定性已经成为现代办公和创作中的常见困扰。ImTip作为一款仅696KB的轻量级工具,通过实时显示输入法状态提示,彻底解决了这一困…

张小明 2026/1/9 13:45:30 网站建设

潍坊网站建设求职简历不同网站的主机和域名

Jessibuca Pro:Web流媒体播放器的技术演进与架构突破 【免费下载链接】jessibuca Jessibuca是一款开源的纯H5直播流播放器 项目地址: https://gitcode.com/GitHub_Trending/je/jessibuca 在当今数字化时代,Web流媒体播放器已成为连接用户与内容的…

张小明 2026/1/11 9:00:26 网站建设

免费行情软件网站直播网站等级保护必须做吗

Ventoy革命性启动盘制作:一劳永逸的多系统启动解决方案 【免费下载链接】Ventoy 一种新的可启动USB解决方案。 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 还在为每个系统镜像都要重新制作启动盘而烦恼吗?Ventoy这款创新性的启动工…

张小明 2026/1/9 15:44:22 网站建设