给定一个数组,返回数组的最大累加和。
代码如下:
public class Problem_3 {
public static int subArrayMaxSum(int [] array){
if(array==null || array.length==0){
return 0;
}
int curr=0;//标识当前最大子数组和,小于0时归0
int max=Integer.MIN_VALUE;//标识最大子数组和
for(int i=0;i<array.length;i++){
curr+=array[i];
max=Math.max(max, curr);//计算出最大值
curr=curr<0?0:curr;//当curr小于0时归0
}
return max;
}
public static void main(String[] args) {
int[] array = {1,-2,3,5,-2,6,-1};
System.out.println(subArrayMaxSum(array));
}
}