121. 买卖股票的最佳时机
* 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
* 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
* 注意你不能在买入股票前卖出股票
public class MaxProfit121 {
public static void main(String[] args) {
int[] arr = {4, 1, 3, 6, 4, 7, 9};
System.out.println(maxProfit(arr));
}
public static int maxProfit(int[] prices) {
if(prices.length <= 0)
return 0;
int min = prices[0];
int max = Integer.MIN_VALUE;
for(int i = 0; i < prices.length; i++){
min = Math.min(min, prices[i]);
max = Math.max(max, prices[i] - min);
}
return max;
}
}
解释:min记录访问到当前的所有元素中的最小值,max记录卖出时的最大收益