股票的最大利润 AcWing (JAVA)

编程入门 行业动态 更新时间:2024-10-23 21:39:31

股票的最大<a href=https://www.elefans.com/category/jswz/34/1760308.html style=利润 AcWing (JAVA)"/>

股票的最大利润 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;}
}

更多推荐

股票的最大利润 AcWing (JAVA)

本文发布于:2024-03-15 09:25:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1738577.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:利润   股票   JAVA   AcWing

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!