一次遍历,一边遍历一边修改买入的价格,一边比较取得最大利润
public class BuyAndSellStocks {
public static void main(String[] args) {
int[] arr = {7,1,5,3,6,4};
int[] arr1 = {7,6,4,3,1};
System.out.println(buyAndSellStocks(arr));
System.out.println(buyAndSellStocks(arr1));
}
public static int buyAndSellStocks(int[] prices) {
int buy = prices[0];//初始买入价格
int profit = 0;//赚取利润
for (int i = 0; i < prices.length; i++) {
if (i < prices.length - 1 && prices[i] < buy) {//肯定要在倒数第二天前买入
buy = prices[i];//修改买入的价格
}
profit = Math.max(prices[i] - buy, profit);//prices[i] - buy和profit取较大值
}
return profit;
}
}