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

贪心算法--购买股票

给你一个整数数组 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 。

题目很明显是需要这一段序列的最大的一个利润。简单一点,就是一个人做白日梦,梦炒股票,炒股都是滴入高卖,只记录正利润。这就是贪心所贪的地方!

比如第三天和第一天相比是的是正利润,那么num[2]-num[0]={num[2]-num[1]}+{num[1]-num[0]},如何就可以抽象出来为什么,而且只加正利润。这就是贪心!

class Solution {
public:int maxProfit(vector<int>& prices) {/*连续上升的值*/int profit = 0;for (int i = 1; i < prices.size(); ++i) {int num = prices[i] - prices[i - 1];if (num > 0) {profit += num;}}return profit;}
};
http://www.lryc.cn/news/340077.html

相关文章:

  • 在Mac主机上连接Linux虚拟机
  • 前端如何单独做虚拟奖金池?
  • 前端md5校验文件
  • 总结SQL相对常用的几个字符函数
  • 云计算笔记
  • 网络安全学习路线-超详细
  • 【多模态检索】Coarse-to-Fine Visual Representation
  • VRRP——虚拟路由冗余协议
  • 隧道应急广播应该如何搭建?
  • OpenHarmony实战开发-Worker子线程中解压文件。
  • 中国科学院大学学位论文LaTeX模版
  • 秘塔和Kimi AI在资料查询和学习中的使用对比
  • apk反编译
  • 修改百度百科的词条的方法
  • 更改ip地址的几种方式有哪些
  • Flink学习(六)-容错处理
  • 设计模式(020)行为型之备忘录模式
  • Android 系统锁屏息屏休眠时Handler CountDownTimer计时器停止运行问题解决
  • Java中如何提取视频文件的缩略图
  • 总结 HashTable, HashMap, ConcurrentHashMap 之间的区别
  • 《剑指 Offer》专项突破版 - 面试题 107 : 矩阵中的距离(C++ 实现)
  • 揭秘智慧礼品背后的故事
  • NVM的安装与配置
  • [Java EE] 多线程(一) :线程的创建与常用方法(上)
  • Linux安装docker(含Centos系统和Ubuntu系统)
  • 【第十五届蓝桥杯大赛软件赛省赛】———— C/C++ 大学B组
  • Redis+lua脚本限制ip多次输入错误密码
  • 全球顶级的低代码开发平台,你知道几个?
  • 11-1.Vue2.x基本列表—v-for
  • 一本书精通推荐算法,轻松搞定入门、面试、进阶