剑指offer python版 42.连续子数组的最大和

"""
输入一个整形数组,数组里有正数也有负数。数组中的一个或连续多个整数
组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。
"""
class Solution:
    def FindGreatestSumOfSubArray(self, data):
        if data == []:
            return
        cur_sum = 0
        res = data[0]
        for i in range(len(data)):
            if cur_sum > 0:
                cur_sum += data[i]
            else:
                cur_sum = data[i]
            res = max(cur_sum, res)
        return res

if __name__ == '__main__':
    data = [1, -2, 3, 10, -4, 7, 2, -5]
    s = Solution()
    print(s.FindGreatestSumOfSubArray(data))



你可能感兴趣的:(剑指offer python版 42.连续子数组的最大和)