输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n).
# -*- coding:utf-8 -*-
class Solution:
def FindGreatestSumOfSubArray(self, array):
if not array:
return 0
max = array[0]
sum = array[0]
for num in array[1:]:
#1.num超级大
#2.num一般大
#3.num正常数
if num > sum +num and max < num:
max = num
sum = num
elif sum +num > max:
sum += num
max = sum
else:
sum +=num
return max
# write code here