Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def min_subarray2(A):
- min_ending_here = min_so_far = abs(A[0])
- sum_here = A[0]
- l = [A[0]]
- for x in A[1:]:
- if x*(sum_here) > 0:
- l.append(x)
- sum_here = x + sum_here
- if abs(x) < abs(sum_here):
- min_ending_here = abs(x)
- sum_here = x
- else:
- min_ending_here = abs(sum_here)
- else:
- sum_here = x
- #print(x)
- for y in l[::-1]:
- if abs(y + sum_here) < abs(sum_here):
- #print(y)
- sum_here = y + sum_here
- #print(sum_here)
- else:
- break
- min_ending_here = abs(sum_here)
- l = [x]
- min_so_far = min(min_so_far, min_ending_here)
- return min_so_far
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement