给定一系列整数,求出其中连续的整数的和的最大值
{-2,11,-4,13,-5,-2}
第2个至第4个连续数的和最大,为20
符号 | 含义 |
---|---|
a[] | 目标数组 |
maxEndBy(i) | 以下标 i 为结尾的的最大数组和 |
maxSum | 目标数组的最大子数组和 |
public class MaxSubArraySum {
public static int maxSum(int ...arr){
int maxEndBy=0;
int maxSum=Integer.MIN_VALUE;
for(int i=0;i<arr.length;i++){
if(maxEndBy>0){
maxEndBy+=arr[i];
}else {
maxEndBy=arr[i];
}
if(maxEndBy>maxSum)
maxSum=maxEndBy;
}
return maxSum;
}
public static void main(String[] args) {
System.out.println(maxSum(-2,11,-4,13,-5,-2));
}
}
原文:https://www.cnblogs.com/redo19990701/p/13218507.html