import java.util.*;
public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        if(array.length == 0){
            return 0;
        }
        int[] dp = new int[array.length]; //dp数组表示以array[i]结尾的连续子数组的最大和
        Arrays.fill(dp,Integer.MIN_VALUE);
        dp[0] = array[0];
        for(int i = 1;i<array.length;i++){
            dp[i] = Math.max(array[i],array[i]+dp[i-1]);
        }
        int res = Integer.MIN_VALUE;
        for(int i:dp){
            res = res>i?res:i;
        }
        return res;
    }
}