您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法
买卖股票的最佳时机(图文)
第十三双眼睛2023-11-29【数据结构与算法】人已围观
简介买卖股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
思路:最容易想到的办法,就是利用选择排序法,从第一个开始遍历,依次和后面的每一个元素比较,比较完后,总能找到最大的收益,但是选择排序法比较耗时。因此不考虑。
第二种思路:定义两个变量,一个表示数组中的最小值,另一个变量表示最大收入,遍历数组,遍历的过程中,如果今天的值是最小值,肯定不适合卖出,如果不是最小值,就计算收入,根历史最大收入做比较,循环完毕以后,就得到了最大收入。代码如下:
第二种思路:定义两个变量,一个表示数组中的最小值,另一个变量表示最大收入,遍历数组,遍历的过程中,如果今天的值是最小值,肯定不适合卖出,如果不是最小值,就计算收入,根历史最大收入做比较,循环完毕以后,就得到了最大收入。代码如下:
public static int method1(int[] nums) { if (nums == null || nums.length == 0) { return 0; } int minPrice = Integer.MAX_VALUE; int maxValue = 0; for (int i = 0; i<nums.length; i++) { if (nums[i] < minPrice) { minPrice = nums[i]; } else if (nums[i] - minPrice > maxValue) { maxValue = nums[i] - minPrice; } } return maxValue; } |
Tags:
很赞哦! ()
上一篇:杨辉三角 II(图文)
下一篇:二叉树的前序遍历(图文)