子数组最大的累加和

来源:互联网 发布:mac usb安装win7 编辑:程序博客网 时间:2024/06/18 10:45

给定一个数组,输出这个数组子数组的最大累加和!{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。

public class Test {
public static int sum(int[] a){
if (a==null||a.length==0){
return 0;
}
int count = 0;
int max = Integer.MIN_VALUE;
for (int i = 0; i < a.length; i++) {
count += a[i];
max = Math.max(count,max);
count = count<0?0:count;
}
return max;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int n = scanner.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = scanner.nextInt();
}
System.out.println(sum(a));
}
scanner.close();
}
}


原创粉丝点击