题解 | #买卖股票的最好时机(一)#

买卖股票的最好时机(一)

http://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec

双指针方法

  public static void main(String[] args) {
        int[] arr = {8, 9, 2, 5, 4, 7, 1};
        System.out.println(max(arr));

    }

    public static int max(int[] prices) {
        if (prices.length == 0 || prices == null) {
            return 0;
        }
        //记录最大利润
        int maxPro = 0;
        int min = prices[0];//记录数组中访问过的最小值
        for (int i = 1; i < prices.length; i++) {
            min = Math.min(min, prices[i]);  //遍历到的元素一直和已知的最小值进行比较,找到后就一直固定
            maxPro = Math.max(prices[i] - min, maxPro);   //不断寻找利益的最大值
        }

        return maxPro;

    }

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务