已解决
121. 买卖股票的最佳时机 --力扣 --JAVA
来自网友在路上 175875提问 提问时间:2023-11-23 23:59:07阅读次数: 75
最佳答案 问答题库758位专家为你答疑解惑
题目
给定一个数组
prices
,它的第i
个元素prices[i]
表示一支给定股票第i
天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回
0
。
解题思路
- 排除特殊情况即只有一天可交易,那么利润一定为0;
- 对数组进行遍历然后读取有利润差的日期和利润,并返回最大利润;
- 在新的最小值出现而最大值不为初始值的情况下,需要重置最大值,因为最大值一定出现在最小值后面。
代码展示
class Solution {public int maxProfit(int[] prices) {int n = prices.length;if(n == 1){return 0;}int ans = 0;int min = prices[0];int max = -1;for (int i = 1; i < n; i++){if(prices[i] < min){min = prices[i];max = -1;} else if(prices[i] > max){max = prices[i];ans = Math.max(ans, max - min);}}return ans;}
}
查看全文
99%的人还看了
猜你感兴趣
版权申明
本文"121. 买卖股票的最佳时机 --力扣 --JAVA":http://eshow365.cn/6-42107-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 跳跃游戏[中等]
- 下一篇: shell 脚本的函数和数组