使用动态规划
F(i):以array[i]为末尾元素的子数组的和的最大值,子数组的元素的相对位置不变
F(i)=max(F(i-1)+array[i] , array[i])
res:所有子数组的和的最大值
res=max(res,F(i))
# -*- coding:utf-8 -*-
class Solution:
def FindGreatestSumOfSubArray(self, array):
# write code here
if not array:
return 0
if len(array)==1:
return array[0]
else:
max_val=array[0]
res=array[0]
i=1
while i<len(array):
max_val=max(array[i]+max_val,array[i])
res=max(res,max_val)
i+=1
return res