lc121. 买卖股票的最佳时机

lc121. 买卖股票的最佳时机_第1张图片 

一次遍历,一边遍历一边修改买入的价格,一边比较取得最大利润

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;
    }
}

你可能感兴趣的:(java,算法,开发语言)