思路:
1.先判断边界条件 num==null || num.length==0
2.连续变量最大和maxsum;中间变量的最大和tempsum
3.遍历数组中所有元素,如果tempsum<=0;让tempsum=0;然后加后面的元素;如果tempsum==0;tempsum就清0;值等于下一个元素;先清0再赋值
maxsum=max(maxsum,tempsum);
注意:maxsum=array[0] 因为有可能最大和序列是负数
public int FindGreatestSumOfSubArray(int[] array) {
if(array==null || array.length==0){
return 0;
}
int maxSum=array[0];
int sum=0;
for(int num:array){
if(sum<=0){
sum=0;
}
sum+=num;
maxSum=Math.max(sum,maxSum);
}
return maxSum;
}