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

股票的最大利润 AcWing (JAVA)

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖 一次 该股票可能获得的利润是多少?

例如一只股票在某些时间节点的价格为 [9,11,8,5,7,12,16,14]。

如果我们能在价格为 5 的时候买入并在价格为 16 时卖出,则能收获最大的利润 11。

数据范围

输入数组长度 [0,500]。

样例:

输入:[9, 11, 8, 5, 7, 12, 16, 14]

输出: 

11

解题思路: 从正常现实生活中考虑我们买卖股票肯定想在最低价的时候将它买入在最高价的时候将其抛售。

为了获取最大利润,用min变量记录前 i - 1 天股票的最低价。

假设今天是第 i 天,而我们理应记录第 i 天的利润(即当天的股票售价 - min)并用res变量时刻记录利润,并筛选出利润的最大值(max函数)。

这样最后的最大利润就是 res 。

理论成立代码如下:

class Solution {public int maxDiff(int[] nums) {if(nums.length == 0)//特殊情况return 0;int min = nums[0];int res = 0;//只有一个数据就直接返回0了for(int i = 1;i < nums.length; i ++){res = Math.max(res, nums[i] - min);min = Math.min(min, nums[i]);//先更新利润再更新min}return res;}
}

http://www.lryc.cn/news/10916.html

相关文章:

  • Go 语言函数调用参数传递规则
  • 二分查找【零神基础精讲】
  • 「计算机组成原理」数据的表示和运算(上)
  • 分层,均质,稀薄燃烧
  • mybatis-plus小课堂:多表查询【案例篇】(apply 拼接 in SQL,来查询从表某个范围内的数据)
  • HashMap原理详解
  • 推荐3款远程办公软件
  • 计算机中有符号数的表示
  • MySQL(一)服务器连接 库的基本操作
  • Maven怎样构建生命周期?
  • 真实3D地形生成器【免费在线】
  • 华为OD机试 - 整数编码(Python)
  • 【GlobalMapper精品教程】051:融合Dissolve操作详解
  • Java Excel的数据导入导出
  • OceanBase 4.0解读:兼顾高效与透明,我们对DDL的设计与思考
  • Qt线程池
  • 设置table中的tbody
  • 2023美赛A题完整数据!思路代码数据数学建模
  • Node.js安装与配置
  • k8s(存储)数据卷与数据持久卷
  • php5.6.9安装sqlsrv扩展(windows)
  • URL黑名单 扫描工具ua特征 GET(args)参数检查 cookie黑名单 POST参数检查参考代码
  • 【软考系统架构设计师】2022下论文写作历年真题
  • 推荐3个好用的scrum敏捷项目管理工具
  • 每日学术速递2.17
  • ElementUI`resetFields()`方法避坑
  • 如何保证数据库和缓存双写一致性?
  • Hinge Loss 和 Zero-One Loss
  • Linux下zabbix_proxy实施部署
  • Rust之错误处理(二):带结果信息的可恢复错误