#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param array int整型一维数组 
# @return int整型
#
class Solution:
    def FindGreatestSumOfSubArray(self , array: List[int]) -> int:
        # write code here
        # 动态规划
        # 单元素情况
        if len(array) == 1:
            return array[0]
        # 元素多于一个时, dp[i]/array[i]代表以i为结尾的连续子数组的最大和
        l = len(array)
        for i in range(1, l):
            if array[i-1] > 0:
                array[i] += array[i-1] # 任何一个数加上正数都比自身大, 要是负数的话,则为dp[i]为自身数据不变
        return max(array)