import collections
a = [-2,11,-4,13,-5,-2]
dic = collections.defaultdict(list)
for i in range(len(a)):
for j in range(len(a), i, -1):
dic[sum(a[i:j])].append(a[i:j])
for k,v in dic.items():
print k,'-',v
print 'the maximum subsegment is:'
lst = dic.keys()
print max(lst),'-',dic[max(lst)] |
>pythonw -u "b.py"
2 - [[-4, 13, -5, -2]]
4 - [[-4, 13, -5]]
5 - [[-2, 11, -4]]
6 - [[13, -5, -2]]
7 - [[11, -4]]
8 - [[13, -5]]
9 - [[-2, 11], [-4, 13]]
11 - [[-2, 11, -4, 13, -5, -2], [11]]
13 - [[-2, 11, -4, 13, -5], [11, -4, 13, -5, -2], [13]]
15 - [[11, -4, 13, -5]]
18 - [[-2, 11, -4, 13]]
20 - [[11, -4, 13]]
-7 - [[-5, -2]]
-5 - [[-5]]
-4 - [[-4]]
-2 - [[-2], [-2]]
the maximum subsegment is:
20 - [[11, -4, 13]]
>Exit code: 0 |
|