求数组中任意连续位置元素和的最大值
a = [-2,3,-4,1,6,-7]
def consecutive_maxsum(elem_list):
if len(elem_list) == 0:
return
max_sum = p = elem_list[0]
for i in range(1, len(elem_list)):
if p <= 0 and elem_list[i] >= 0:
p = elem_list[i]
else:
p += elem_list[i]
if max_sum < p:
max_sum = p
return max_sum
print consecutive_maxsum(a)
前面的连续元素之和大于0时才对于结果最终结果又贡献,否则没有贡献