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

与网站设计相关的软件主要有北京国互网网站建设公司

与网站设计相关的软件主要有,北京国互网网站建设公司,软件外包服务内容,广州市场调研公司题目来源#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/ 好久没写代码了#xff0c;啥啥都忘了 C题解1#xff1a;贪心算法。#xff08;来源代码随想录#xff09; 因为股票就买卖一次#xff0c;那么贪心的想法很自然就是取…题目来源https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/ 好久没写代码了啥啥都忘了 C题解1贪心算法。来源代码随想录 因为股票就买卖一次那么贪心的想法很自然就是取最左最小值取最右最大值那么得到的差值就是最大利润。 时间复杂度O(n)空间复杂度O(1) class Solution { public:int maxProfit(vectorint prices) {int low prices[0];int n prices.size();int maxp 0;for(int i 0; i n; i){low min(low, prices[i]);maxp max(maxp, prices[i] - low);}return maxp;} }; C题解2动态规划 来源代码随想录 动规五部曲分析如下 1. 确定dp数组dp table以及下标的含义。dp[i][0] 表示第i天持有股票所得最多现金 一开始现金是0那么加入第i天买入股票现金就是 -prices[i] 这是一个负数。dp[i][1] 表示第i天不持有股票所得最多现金。注意这里说的是“持有”“持有”不代表就是当天“买入”也有可能是昨天就买入了今天保持持有的状态 2. 确定递推公式 如果第i天持有股票即dp[i][0] 那么可以由两个状态推出来 第i-1天就持有股票那么就保持现状所得现金就是昨天持有股票的所得现金 即dp[i - 1][0]第i天买入股票所得现金就是买入今天的股票后所得现金即-prices[i] 那么dp[i][0]应该选所得现金最大的所以dp[i][0] max(dp[i - 1][0], -prices[i]); 如果第i天不持有股票即dp[i][1] 也可以由两个状态推出来 第i-1天就不持有股票那么就保持现状所得现金就是昨天不持有股票的所得现金 即dp[i - 1][1]第i天卖出股票所得现金就是按照今天股票价格卖出后所得现金即prices[i] dp[i - 1][0] 同样dp[i][1]取最大的dp[i][1] max(dp[i - 1][1], prices[i] dp[i - 1][0]); 3. dp数组如何初始化 由递推公式 dp[i][0] max(dp[i - 1][0], -prices[i]); 和 dp[i][1] max(dp[i - 1][1], prices[i] dp[i - 1][0]);可以看出其基础都是要从dp[0][0]和dp[0][1]推导出来。 那么dp[0][0]表示第0天持有股票此时的持有股票就一定是买入股票了因为不可能有前一天推出来所以dp[0][0] - prices[0]; dp[0][1]表示第0天不持有股票不持有股票那么现金就是0所以dp[0][1] 0; 4. 确定遍历顺序 从递推公式可以看出dp[i]都是由dp[i - 1]推导出来的那么一定是从前向后遍历。 时间复杂度O(n)空间复杂度O(n) class Solution { public:int maxProfit(vectorint prices) {int n prices.size();// 所拥有的金额vectorvectorint dp(n, vectorint(2));dp[0][0] -prices[0]; //持有即买入或者之前就持有dp[0][1] 0; //不持有即卖出或者之前就已经卖出for(int i 1; i n; i){dp[i][0] max(dp[i-1][0], -prices[i]);dp[i][1] max(dp[i-1][1], prices[i] dp[i-1][0]);}return dp[n-1][1]; // 最后一定是不持有} }; 从递推公式可以看出dp[i]只是依赖于dp[i - 1]的状态。那么我们只需要记录 当前天的dp状态和前一天的dp状态就可以了可以使用滚动数组来节省空间代码如下 时间复杂度O(n)空间复杂度O(1) class Solution { public:int maxProfit(vectorint prices) {int len prices.size();vectorvectorint dp(2, vectorint(2)); // 注意这里只开辟了一个2 * 2大小的二维数组dp[0][0] - prices[0];dp[0][1] 0;for (int i 1; i len; i) {dp[i % 2][0] max(dp[(i - 1) % 2][0], -prices[i]);dp[i % 2][1] max(dp[(i - 1) % 2][1], prices[i] dp[(i - 1) % 2][0]);}return dp[(len - 1) % 2][1];} };
http://www.pierceye.com/news/213713/

相关文章:

  • php网站接口开发wordpress添加作者
  • 网站建设漂亮的模板创新网站建设工作
  • 国内做服装的网站有哪些方面wordpress邮件订阅
  • 建立个人网站主题安徽省建设厅网站打不开
  • 做互联网小程序 和网站有没有前景广州网站制作教程
  • 新网网站内部优化wordpress菜单图标
  • 深圳市龙华区住房和建设局网站网站开发连接数据库
  • 做张家界旅游网站多少钱做网站的步骤 优帮云
  • 怎么建立一个好公司网站网站模版参考
  • 成都大型网站设计公司怎么快速建设小型外贸网站
  • 建设工程规范在哪个网站发布河南网络推广培训
  • 深圳宝安上市公司网站建设报价石家庄教育学会网站建设
  • 上海 专业网站建设网络推广公司收费标准
  • 网站建设维护的知识wordpress调用多张产品图片
  • 网站的静态资源服务器怎么做上海加盟网站建设
  • 网站数据库如何做小游戏网页版入口
  • 做php网站教程视频国产长尾关键词拘挖掘
  • 网站首页置顶是怎么做网站运营专员做什么
  • 福建嘉瑞建设工程有限公司网站wordpress密码字典
  • 网站开发答辩设计预期目标卓进网站
  • 整站优化要多少钱番禺建设网站哪个好
  • 汕尾手机网站设计广州建设网站外包
  • discuz 做论坛与网站wordpress一键 centos
  • 网站推广智选刺盾云下拉老鹰网营销型网站建设
  • 摄像机怎么在自己家网站做直播python网站开发招聘
  • 府网站建设先进个人网站产品数据库
  • 美食网站设计网站手机商城图片
  • 广州网站开发 细致广州亦客网络sql注入网站建设百度云
  • 株洲网站设计外包首选每个网站都有后台吗
  • 网站运营管理员具体做什么企业网站搭建哪家好