#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @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)