剑指offer-连续子数组的最大和(python)

使用动态规划
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

猜你喜欢

转载自blog.csdn.net/qq_42738654/article/details/104409495