求子数组的最大和

求整数数组中连续子序列之和最大值,其中整数数组可以为正数、负数、0
输入、输出描述
输入:
整数数组
输出:
连续子序列之和最大值
Example
输入:
-2,4,-2,7,-6,-1
输出:
9
代码:
import java.util.*;

public class Main {

 

 public int solution(int[] input,int n) {

		return method2(input);
    }
  public int method1(int[] array){
        if(array == null || array.length ==0){
            return 0;
        }
        
        int max = array[0];
        int total = array[0];
        
        for(int i=1;i<array.length;i++){
            if(total>=0){
                total += array[i];
            }else{
                total = array[i];
            }
            
            if(max < total){
                max = total;
            }
        }
        return max;
    }
    
    public int method2(int[] array){
        
        int total = array[0];
        for(int i=1;i<array.length;i++){
            array[i] += array[i-1] > 0 ? array[i-1] : 0;
            
            total = Math.max(total,array[i]);
        }
        
        return total;
        
    }

}
一个创业中的苦逼程序员
评论专区

隐藏