股票的最大利润

public static int MaxDiff(int[] arr) {
        if(arr==null || arr.length<2)
            return -1;  //error
        int min=arr[0];
         
        //最大利润可以是负数,只要亏损最小就行
        int maxDiff=arr[1]-min; 
        for(int i=1;i<arr.length;i++) {
            if(arr[i-1]<min)     //保存“之前”最小数字
                min=arr[i-1];  
            if(arr[i]-min>maxDiff)
                maxDiff=arr[i]-min;
        }
         
        //默认不能亏本,代码简单,上面复杂的代码注意细节
//      int maxDiff=0; 
//      for(int i=1;i<arr.length;i++) {
//          if(arr[i]<min)
//              min=arr[i];
//          else if(arr[i]-min>maxDiff)
//              maxDiff=arr[i]-min;
//      }
        return maxDiff;
    }
原文地址:https://www.cnblogs.com/zzq-include/p/13577122.html