思路:
寻找连续子序列和最大的子序列。设置两个参数,一个保存当前序列值,另一个保存最大序列值,当前序列值小于0时,让序列值重新计数。为正数时继续累积,如果比最大序列值还大就记录当前值为最大序列值。
实现:
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if(array.length == 0 || array == null){
return 0;
}
int curSum = 0;
int greatestSum = array[0] ;
for(int i = 0; i < array.length ; i++){
if(curSum <= 0){
curSum = array[i] ;
}else{
curSum += array[i] ;
}
if(curSum > greatestSum ){
greatestSum = curSum ;
}
}
return greatestSum ;
}
}