public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        if(array == null || array.length == 0) {
            return 0 ;
        }
        if(array.length == 1) {
            return array[0] ;
        }
        //使用滚动数组,进行空间优化
        int f[] = new int[2] ;
        int old = 0 ;//上一次
        int cur = 1 ;//当前
        f[old] = array[0] ;
        int max = Integer.MIN_VALUE ;//记录计算过程中的最大值
        for(int i = 1 ; i < array.length ; i ++) {
            f[cur] = Math.max(array[i] , f[old] + array[i])  ;
            if(f[cur] > max) {
                max = f[cur] ;
            }
            old = cur ;//上一次脚标,更新为当前
            cur = 1-cur ;//当前更新为上一次
        }
         return max ;
    }
}