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

第一ppt模板免费下载网站关键词推广软件

第一ppt模板免费下载网站,关键词推广软件,网站运营分析报告,wordpress 404跳转首页今天讲解买股票的最佳时机和买股票的最佳时机2。下面仅代表我自己的想法和思路&#xff0c;有错误请留言 买股票的最佳时机&#xff1a; 题目链接&#xff1a;121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 提示&#xff1a; 1 < pr…

今天讲解买股票的最佳时机和买股票的最佳时机2。下面仅代表我自己的想法和思路,有错误请留言

买股票的最佳时机:

题目链接:121. 买卖股票的最佳时机 - 力扣(LeetCode)

题目:

 

提示:

  • 1 <= prices.length <= 100000
  • 0 <= prices[i] <= 10000

 下面我将通过 [7,1,5,3,6,4] 事例和大家进行讲解这道题的思路,首先先通过这些数据画一张折现图

 

通过这张图片上大家可以很清晰的看到,如果是我们想获得最大利润,而且在只购买一次的情况下,必须买的时候必须买最便宜的,然后找到后面最大的股票价钱,这样才可以达到购买的最大利润

根据图我们可以看到当在第一天买入时和在第四天卖出时,递增差值最大,这是获得最大利润最多

代码思路:

我们需要两个变量来存储我们的股票的最小价钱和我们获得的最大利润 ,然后通过遍历我们的prices就是给的数据,然后进行最大利润和最小股票价格的更新,

通过上面的数据大小和范围提示,0 <= prices[i] <= 10000,我们可以将最小价值设为10000,这样最小价值就可以根据数据进行更新了,(不会出现当股票的价钱都是10000时,然后我们将股票的最小价格设为9999时,这样还可以赚一块钱,事实上是不会赚钱的,最大利润应该为0)然后我们的最小利润就是0,迭代时我们需要保留当前股票下的最大利润和该股票之前的股票最小价值,当前的最大利润就是上一个股票的最大利润和当前股票减去股票的最小价值的值,最后得到的利润就是我们的最大利润

 代码:
class Solution {
public:int maxProfit(vector<int>& prices) {int n = 10000;int minPrice = n;int maxProfit = 0;for (int i = 0; i < prices.size(); i++) {maxProfit = max(maxProfit, prices[i] - minPrice);minPrice = min(minPrice, prices[i]);}return maxProfit;}
};

买股票的最佳时机2:

题目链接:122. 买卖股票的最佳时机 II - 力扣(LeetCode)

 题目:

  • 1 <= prices.length <= 30000
  • 0 <= prices[i] <= 10000

这个题和上个题的区别就是这个可以多次购买,上面的只能购买一次,虽然可以多次购买,但是不能卖出的同时再买入,就是比如在第二天卖出了,就不能在第二天买入了,只能在第二天以后买入了,通过判断分析可知,当我们在第一天买入,第二天卖出,然后在第三天买入,第四天,卖出,就可以获得最大利润,这道题有两个解法,一个是贪心,一个是动态规划,

 

贪心:

因为题目要求我们获得最大利润,所以我们只在股票价格上升的时候加到我们的利润当中,这样就可以获得最大利润

 贪心代码:
class Solution {
public:int maxProfit(vector<int>& prices) {int res = 0;for (int i = 1; i < prices.size(); i++) {if ((prices[i] - prices[i - 1]) < 0) {continue;} else {res += (prices[i] - prices[i - 1]);}}return res;}
};
动态规划:

我们需要存储两个状态,就是当我们手里面没有股票和当我们的身上有股票,然后遍历prices数据,不断更新当前股票的没有持有股票的最大价格,和持有股票的最大价格,

没有持有股票的最大价格是前一个股票的没有持有股票的最大利润和前一个持有股票但是在该股票卖出的最大值

持有股票的最大价格是前一个股票的持有股票的最大利润和不持有股票但是在该股票买入的最大值

最后的没有股票的利润就是我们要的最大利润

 动态规划:
class Solution {
public:int maxProfit(vector<int>& prices) {//  表示不持有股票时的最大利润,初始值为 0。int cash = 0;//  表示持有股票时的最大利润,初始值为//  -prices[0](表示第一天买入股票)。int hold = -prices[0];for (int i = 1; i < prices.size(); i++) {int prev_cash = cash;// 取前一天的 cash 和前一天的 hold 加上当天的价格(卖出股票)的较大值cash = max(cash, hold + prices[i]);// 取前一天的 hold 和前一天的 cash 减去当天的价格(买入股票)的较大值。hold = max(hold, prev_cash - prices[i]);}return cash;}
};

http://www.dtcms.com/wzjs/362620.html

相关文章:

  • 巴青网站制作百度销售
  • 陕西网站建设哪家强百度识图软件
  • 怎么做视频解析的网站百度云登录首页
  • 电商网站建设最好的公司阿森纳英超积分
  • 建筑工程招投标网站长沙网站优化推广
  • 国家高新技术企业认定机构崇左seo
  • 外包加工网真的假的网站关键词排名优化系统
  • 网站产品类别顺序如果修改淘宝优化标题都是用什么软件
  • wordpress和帝国cms百度收录seo问答
  • 上海网站建设的报价郑州中原区最新消息
  • 平面设计手绘网站google chrome官网
  • 河南响应式建站磁力猫引擎
  • 德清县建设局网站国产免费crm系统有哪些在线
  • 在公司网站建设会议上的汇报网络营销个人总结
  • 政府门户网站工作建设武汉百度推广seo
  • 如何查找网站的死链接关键词优化
  • 网站建设引擎广告收益平台
  • 长寿做网站最新新闻头条
  • 深圳网站制作 论坛武汉网络营销推广
  • 专业做美食视频的网站产品seo基础优化
  • 网站开发需要什么软件做品牌推广应该怎么做
  • 网站怎么无法访问社交媒体营销策略有哪些
  • java直播网站怎么做营销策略ppt模板
  • 网络营销方式的演变南京seo优化推广
  • wordpress子站点用户无角色靖江seo要多少钱
  • 网站开发用什么写福州网站排名
  • 网站制作多久能完成营销型企业网站制作
  • 网站风格类型是搜索引擎优化的基本方法
  • 郑州网站+建设百度拍照搜题
  • django网站开发视频教程下载专业北京seo公司