一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该连续子数组中各元素的和最大,这个连续子数组便被称作最大连续子数组。比如数组{2,4,-7,5,2,-1,2,-4,3}的最大连续子数组为{5,2,-1,2},最大连续子数组的和为5+2-1+2=8。
package demo;
import java.util.ArrayList;
public class FirstDemo {
public static void main(String[] args) {
int[] a = {1,2,3,-6,2};
int len = a.length;
int i ;
int MaxSum = 0;
int CurSum = 0;
for(i = 0;i<len;i++){
CurSum += a[i];
if(CurSum > MaxSum){
MaxSum = CurSum;
}
if(CurSum < 0){
CurSum = 0;
}
}
System.out.println(MaxSum);
}
}