//In
Java
public static int maxSubSum(int[] array){
int sum = 0, max = array[0];
for(int i = 0; i < array.length; i++){
sum += array[i];
if(sum > max)
max = sum;
if(sum < 0) //如果 sum < 0, 将 sum 重新置 0
sum = 0;
}
return max;
}
//In
C++
#include
#include
#include
#define length(array) sizeof(array) / sizeof(array[0])
int maxSubSum(int *array, int len){
int sum = 0, max = array[0];
for(int i = 0; i < len; i++){
sum += array[i];
if(sum > max)
max = sum;
if(sum < 0)
sum = 0;
}
return max;
}