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

酒店和网站对接如何做APP网站怎么做

酒店和网站对接如何做,APP网站怎么做,网站设计公司 南京,wordpress 好用插件推荐题目1#xff1a;123 买卖股票的最佳时机Ⅲ 题目链接#xff1a;买卖股票的最佳时机Ⅲ 对题目的理解 prices[i]表示股票在第i天的价格#xff0c;最多可以完成两笔交易#xff0c;不能同时进行多笔交易 可以买卖一次#xff0c;两次#xff0c;也可以不买卖 动态规划…题目1123 买卖股票的最佳时机Ⅲ 题目链接买卖股票的最佳时机Ⅲ 对题目的理解 prices[i]表示股票在第i天的价格最多可以完成两笔交易不能同时进行多笔交易 可以买卖一次两次也可以不买卖 动态规划 动规五部曲 1dp数组及下标i的含义 dp[i][0]  不操作(可有可无)股票的最大现金 dp[i][1]  第一次持有股票的最大现金 dp[i][2]  第一次不持有股票的最大现金 dp[i][3]  第二次持有股票的最大现金 dp[i][4]   第二次不持有股票的最大现金 不持有股票现金的状态一定比持有股票的现金多第二次不持有一定包含第一次不持有的钱 最终求解 dp[prices.size()-1][4] 2递推公式 dp[i][0] dp[i-1][0] dp[i][1] dp[i-1][1]  前一天已经持有 dp[i][1] dp[i-1][0]-prices[i]   第i天买入,前一天不操作 dp[i][1] max(dp[i-1][1]dp[i-1][0]-prices[i]) dp[i][2] dp[i-1][2]  前一天不持有 dp[i][2] dp[i-1][1]prices[i]    第i天卖出 前一天持有 dp[i][2] max(dp[i-1][2]dp[i-1][1]prices[i]) dp[i][3] dp[i-1][3]  前一天已经持有 dp[i][3] dp[i-1][2] -prices[i]  第i天买入但是因为是第二次买入所以应该是在第一次卖出的基础上减去第i天的股票价格 dp[i][3] max(dp[i-1][3]dp[i-1][2]-prices[i]) dp[i][4] dp[i-1][4]  前一天不持有 dp[i][4] dp[i-1][3] prices[i]  第i天卖出但是因为是第二次卖出所以应该在第二次买入的基础上加上第i天的股票价格 dp[i][4] max(dp[i-1][4]dp[i-1][3]prices[i]) 3dp数组初始化 从递推公式可以看出i的状态由i-1的状态决定所以初始化dp[0] dp[0][0]0 dp[0][1]-prices[0] dp[0][2]0(同一天买卖) dp[0][3]-prices[0](第二次又买入了) dp[0][4]0第二次又卖出了 4遍历顺序 从递推公式可以看出i的状态由i-1的状态决定所以从小到大遍历 for(i1;iprices.size();i)  注意从1开始 5打印dp数组 代码 class Solution { public:int maxProfit(vectorint prices) {//定义dp数组vectorvectorint dp(prices.size(),vectorint(5));//初始化dp数组dp[0][0] 0;//不操作dp[0][1] -prices[0];//第一次持有股票dp[0][2] 0;//第一次不持有股票dp[0][3] -prices[0];//第二次持有股票dp[0][4] 0;//第二次不持有股票for(int i1;iprices.size();i){dp[i][0] dp[i-1][0];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]);}return dp[prices.size()-1][4];} }; 时间复杂度O(n)空间复杂度O(n × 5) 不使用dp[i][0]这个数组直接将dp[i][0]相关的部分注释掉即可 代码 class Solution { public:int maxProfit(vectorint prices) {//定义dp数组vectorvectorint dp(prices.size(),vectorint(5));//初始化dp数组// dp[0][0] 0;//不操作dp[0][1] -prices[0];//第一次持有股票dp[0][2] 0;//第一次不持有股票dp[0][3] -prices[0];//第二次持有股票dp[0][4] 0;//第二次不持有股票for(int i1;iprices.size();i){// dp[i][0] dp[i-1][0];dp[i][1] max(dp[i-1][1],-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]);}return dp[prices.size()-1][4];} }; 题目2买卖股票的最佳时机Ⅳ 题目链接买卖股票的最佳时机Ⅳ 对题目的理解 prices[i]是某支股票在第i天的价格最多可以完成k笔交易不能同时参与多笔交易 动规五部曲 1dp数组及下标i的含义 dp[i][j]:第i天的状态为j持有股票奇数不持有股票偶数所拥有的最大现金j大于等于0小于等于2k 最终求解dp[prices.size()-1][2k] 2递推公式 for(j0;j2k-1;j2)  //j控制第几次买卖 第j次持有  dp[i][j1] max(dp[i-1][j1],dp[i][j]-prices[i]); 第j次不持有  dp[i][j2] max(dp[i-1][j2],dp[i][j1]prices[i]); 3dp数组初始化 根据递推公式j为奇数表示持有for(int j1;j2k;j2)  dp[0][j]-prices[0] 4遍历顺序 根据递推公式从小到大遍历 5打印dp数组 代码 class Solution { public:int maxProfit(int k, vectorint prices) {//定义dp数组vectorvectorint dp(prices.size(),vectorint(2*k1));//初始化dp数组for(int j1;j2*k;j2){//j为奇数下标时全为-prices[0],j是下标应不超过2k1dp[0][j]-prices[0];} //递推for(int i1;iprices.size();i){for(int j0;j2*k-1;j2){//将j代入j2,2k-222k//持有dp[i][j1]max(dp[i-1][j1],dp[i-1][j]-prices[i]);//不持有dp[i][j2]max(dp[i-1][j2],dp[i-1][j1]prices[i]);}}return dp[prices.size()-1][2*k];} }; 时间复杂度: O(n * k)其中 n 为 prices 的长度空间复杂度: O(n * k)
http://www.zqtcl.cn/news/233559/

相关文章:

  • 企业网站可以免费做吗网站建设管理内容保障制度
  • 建立导购网站吴江区建设局网站
  • 东莞网站建设(信科分公司)青岛市北建设集团网站
  • 企业网站分类举例营销型网站建设市场
  • 自学app开发难吗长沙专业网站优化定制
  • 厦门做企业网站找谁wordpress4.7.10漏洞
  • 百科网站源码最好的免费logo设计网站
  • 北京做网站s如何做网站截流
  • 深圳摇号申请网站在线免费网站
  • 自己做网站用花钱吗广西建设四库一平台网站
  • 做网站建设一般多少钱做网站要买多少服务器空间
  • 天津网站优化哪家快惠民建设局网站是哪个
  • 大连做网站绍兴厂商商城网站数据库表关系设计
  • 公司网站制作第三方彭州做网站的公司
  • 青建设厅官方网站海省包装策划与设计专业
  • 中国城投建设集团网站手机网游
  • 通过音乐做网站外链企业所得税多少钱起征
  • 哪个网站系统做的好广州电子商城网站
  • 泉州模板建站定制成都网页设计培训机构
  • 个人微信公共号可以做微网站么免费产品推广软件
  • 建设银行瓶窑支行网站阿里域名官网
  • 宿迁网站seo中原建设信息网 网站
  • 地方网站域名用全拼建设银行网站怎么登录密码忘了怎么办
  • win7 iis7 添加网站秦皇岛 网站建设
  • 手机模板网站模板下载工具Wordpress elgg
  • 宠物网站建设的目的wordpress图创
  • 网站首页图片怎么更换浙江省建设政务网站
  • 宁波有哪家公司做网站的京东联盟网站建设电脑版
  • 电商网站业务流程网站制作在哪找
  • 学校网站建设教程加盟网站制作费用