题目:输入一个整数数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。
分析:使用动态规范的方法做,状态方程为:
def great_sum_array(arr): if len(arr)<1: return 0 length = len(arr) i = 1 great_num = arr[0] cur = arr[0] while i<length: if cur>0: cur = cur + arr[i] else: cur = arr[i] if cur>great_num: great_num = cur i += 1 return great_num