RosettaCodeData/Task/Greatest-subsequential-sum/Python/greatest-subsequential-sum-4.py
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

14 lines
446 B
Python

def maxsumit(iterable):
maxseq = seq = []
start, end, sum_start = -1, -1, -1
maxsum_, sum_ = 0, 0
for i, x in enumerate(iterable):
seq.append(x); sum_ += x
if maxsum_ < sum_:
maxseq = seq; maxsum_ = sum_
start, end = sum_start, i
elif sum_ < 0:
seq = []; sum_ = 0
sum_start = i
assert maxsum_ == sum(maxseq[:end - start])
return maxseq[:end - start]