#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param array int整型一维数组 
# @return int整型
#
class Solution:
    def FindGreatestSumOfSubArray(self , array: List[int]) -> int:
        # write code here
        n = len(array)
        dp = [0]*n#构建连续子数组和最大值数组,数组中每一位都是该位最大连续子数组和
        dp[0] = array[0]#初始化数组中的第一位
        maxsum = dp[0]#初始最大连续子数组和
        for i in range(1,n):
            dp[i] = max(dp[i-1]+array[i],array[i])#更新每位的最大连续子数组和值
            maxsum = max(maxsum,dp[i])#更新最大连续子数组和
        return maxsum