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 ; } }