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

 

相关文章:

  • 2021-08-22
  • 2021-10-12
  • 2022-12-23
  • 2021-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-01
猜你喜欢
  • 2021-08-25
  • 2022-12-23
  • 2022-03-08
  • 2021-10-04
  • 2022-12-23
  • 2021-10-04
相关资源
相似解决方案