一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该连续子数组中各元素的和最大,这个连续子数组便被称作最大连续子数组。比如数组{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);
    }
}