此处需要注意连续子数组并不一定要从第一个元素开始,也可以是中间的一段元素。
还需要考虑全部是负数的情况
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if(array==null) return 0;
int sum = array[0];
int tempsum = array[0]; //注意初始值不能设为0,防止只有负数
for(int i = 1; i < array.length; i++) {
//一旦临时和变成负数,那么它与后面元素的和一定小于后面元素的和,应该舍弃
tempsum = (tempsum < 0) ? array[i] : tempsum + array[i];
sum = (tempsum > sum) ? tempsum : sum;
}
return sum;
}
}