public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if(array.length == 0){
return 0;
}
//sum为子数组的和
int sum = array[0];
//max为子数组的最大和
int max = array[0];
for(int i=1;i<array.length;i++){
sum += array[i];//求和
if(sum < 0 && sum < max){//如果当前求得总和为负数且小于max(考虑最后max为负数的情况)的话,就将其清零,从下一位置重新累加
sum = 0; //若果当前求和不是负数只是小于max,可以继续累加。
} else if( sum > max ){//如果求得总和大于之前的最大值的话,就将sum赋值给max,同时记录最后的位置
max = sum;
}
}
return max;
}
}