public static void main(String[] args) {
int []x= {1,-3,2,11,8,-4,13,-5,-4,8,-5};
System.out.println("最大子段和为"+MaxAdd(x));
}
private static int MaxAdd(int a[]) {
int max=0;
int b=0;
int end=0;
int begin=0;
for(int i=0;i<=a.length-1;i++) {
if(b<0) {
b=a[i];
begin=i;
}
else if(b>=0) {
b=b+a[i];
}
if(b>max) {
end=i;
max=b;
}
}
System.out.println("开始位置为"+a[begin]);
System.out.print("结束位置为"+a[end]+" ");
return max;
}