{6, -3, -2, 7, -15, 1, 2, 2},连续子数组的最大和为 8(从第 0 个开始,到第 3 个为止)。
解题思路
从头开始遍历数组,遍历到数组元素 arr[ i ] 时,连续的最大的和 可能为 max( dp[ i -1 ] ) + arr[ i ] ,也可能为 arr[ i ] ,做比较即可得出哪个更大,取最大值。时间复杂度为 n
class Solution:
def FindGreatestSumOfSubArray(self, array):
# write code here
if len(array)<1:
return 0
su=0
res = -1
for val in array:
su = val if su<=0 else su+val
res = max(res,su)
return res