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

股票最大利润2

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。

在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润 。

示例 1:

输入:prices = [7,1,5,3,6,4]
输出:7
解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。
最大总利润为 4 + 3 = 7 。

示例 2:

输入:prices = [1,2,3,4,5]
输出:4
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。
最大总利润为 4 。

示例 3:

输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。

提示:

  • 1 <= prices.length <= 3 * 104
  • 0 <= prices[i] <= 104

 

class Solution {
public:int maxProfit(vector<int>& prices) {int max_profit = 0;  // 初始化最大利润为 0for (int i = 1; i < prices.size(); ++i) {if (prices[i] > prices[i - 1]) {max_profit += prices[i] - prices[i - 1];}}return max_profit;  // 返回总利润}
};

由于可以每天进行买入和卖出操作,所以所有获上涨部分,即prices[i] - prices[i - 1]>0,就是利润。

如果 prices = [1, 2, 3, 4, 5]

  • 第 1 天,股票价格是 1,可以买入。
  • 第 2 天,股票价格是 2,可以卖出,赚取 2 - 1 = 1 的利润。
  • 第 2 天,股票价格是 2,可以再买入。
  • 第 3 天,股票价格是 3,可以卖出,赚取 3 - 2 = 1 的利润。
  • 第 3 天,股票价格是 3,可以再买入。
  • 第 4 天,股票价格是 4,可以卖出,赚取 4 - 3 = 1 的利润。
  • 第 4 天,股票价格是 4,可以再买入。
  • 第 5 天,股票价格是 5,可以卖出,赚取 5 - 4 = 1 的利润。

http://www.mrgr.cn/news/55671.html

相关文章:

  • 二叉树遍历(前序、中序、后续)
  • 算法笔记day07
  • ruoyi域名跳转缓存冲突问题(解决办法修改:session名修改session的JSESSIONID名称)
  • linux使用df与du命令查看磁盘大小不一致问题
  • 人工智能:塑造未来生活与工作的力量
  • ab命令深入解析:ApacheBench性能测试工具
  • Linux文件你不知道的那些事,搞清楚磁盘空间占用的问题
  • 明源云ERP报表服务GetErpConfig.aspx接口存在敏感信息泄露
  • java时间类--Period时间差计算场景2-年月日时分秒
  • Springboot项目控制层注释
  • Axure大屏可视化模板:打造跨领域数据分析平台的原型设计案例
  • 10月20日
  • PMP敏捷专题课:敏捷实践指南
  • pushgateway的快速使用教程(附Java版通用推送代码)
  • EWM 库存盘点
  • 数组转List
  • Python机器学习中的主成分分析(PCA)全面解析与应用
  • jmeter学习(8)界面的使用
  • 旧电脑安装Win11提示“这台电脑当前不满足windows11系统要求”,安装中断。怎么办?
  • 比亚迪智驾变阵:整合自研,冲刺量产,目标让10万级也搭NOA
  • 红队老子养成记3 - 学会反弹shell的多种姿势,拿shell拿手软!!(全网最多姿势!)
  • IO编程——消息队列
  • 【H2O2|全栈】JS入门知识(五)
  • 碰到这个问题请更新或重新安装fastapi版本
  • 时序分解 | Matlab实现EEMD+SE集合经验模态分解+样本熵计算的时间序列信号分解
  • Android 性能之 Game Mode