题目描述:给定一个数组 prices
,它的第 i
个元素 prices[i]
表示一支给定股票第 i
天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0
。
数组版本的实现方式可参考笔者之前写过的一篇文章:20220310数组:买卖股票的最佳时机_丿SeeYouAgain的博客-CSDN博客
编码实现:
public int maxProfit(int[] prices) {
int result = 0;
if (null == prices || prices.length == 0){
return result;
}
int min = prices[0];
for (int i = 1; i < prices.length; i++) {
min = Math.min(min, prices[i]);
result = Math.max(prices[i] - min, result);
}
return result;
}