import java.lang.Math; //这个题采用简单的动态规划,利用原来的数组村村dp元素 //简单来讲就是计算某个元素为止的子序列的和,如果这个和 //小于等于零,那么从下一个元素开始统计新的子序列 //将新的子序列中的最大值于已经求解出的最大值对比,获取新的最大值 //重复这个过程,不断更迭新的子序列和最大值,直到遍历完成数组,最终 //获得最大和 //这个问题的难点在于如何确定开始新的子序列的开始规则(前一个子序列 //的和小于等于0) public class Solution { public int FindGreatestSumOfSubArray(int[] array) {

    int result = array[0];
    for(int i = 1;i < array.length;i ++){
        array[i] = Math.max(array[i],array[i] + array[i - 1]);//这一步是关键
        result = Math.max(result,array[i]);
    }
    return result;
}

}