从数组的开头往下走,sum记录连续的和,max记录最大值
sum和max的初始值为数组第一个元素array[0]
数组不断往下走,不断更新max的值。如果当sum<array[0]时,此时就需要丢弃之前统计的,所以令sum=0
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { int max = array[0]; int sum = 0; for(int i=0;i<array.length;i++){ sum += array[i]; if(sum>max) max = sum; if(sum<array[0]) sum=0; } return max; } }