假设你有一个数组,其中第 i 个元素是股票在第 i 天的价格。
你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。

/**
     * 买卖股票最大收益
     * 假设你有一个数组,其中第 i 个元素是股票在第 i 天的价格。
     * 你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。
     * 解题思路:
     * 由于只有一次买卖机会,只有先买才能卖。我们首先需要设定最初的一个买入值,然后判断之后的卖出值与买入值之差。并且还需要去重新设置买入值
     */
    public int maxProfit (int[] prices) {
        // write code here
        if (prices.length < 2) return 0;
        int max = 0; //最大收益
        int min = prices[0];//给定第一个数据为买入值
        for (int i = 1; i < prices.length; i ++) { //从第二个值开始遍历
            if (prices[i] - min > max) { //当第i个值与买入值之差大于当前的最大收益max时
                max = prices[i] - min; //重新给最大收益max赋值
            }
            if (prices[i] < min){ //判断第i个数是否比设置的买入初值小,小则代表当前的第i个数才是买入的最佳时刻。
                min = prices[i]; //重新赋值最佳买入值
            }
        }
        return max;
    }