给定一个数组
prices
,它的第i
个元素prices[i]
表示一支给定股票第i
天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回
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;
- }
- }