public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        if (array == null || array.length == 0) {
            return 0;
        }

        int sum = 0;//前n个子数组最大和
        int max = array[0];//记录最终结果,并初始化为第一个元素,避免在首个元素为负数时遗漏
        for (int a : array) {
            if (sum <= 0) {
                sum = a;
            } else {
                sum += a;
            }
            max = Math.max(max, sum);
        }
        return max;
    }
}