Advertisement
Guest User

Untitled

a guest
Jul 29th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. def min_subarray2(A):
  2. min_ending_here = min_so_far = abs(A[0])
  3. sum_here = A[0]
  4. l = [A[0]]
  5. for x in A[1:]:
  6. if x*(sum_here) > 0:
  7. l.append(x)
  8. sum_here = x + sum_here
  9. if abs(x) < abs(sum_here):
  10. min_ending_here = abs(x)
  11. sum_here = x
  12. else:
  13. min_ending_here = abs(sum_here)
  14. else:
  15. sum_here = x
  16. #print(x)
  17. for y in l[::-1]:
  18. if abs(y + sum_here) < abs(sum_here):
  19. #print(y)
  20. sum_here = y + sum_here
  21. #print(sum_here)
  22. else:
  23. break
  24. min_ending_here = abs(sum_here)
  25. l = [x]
  26. min_so_far = min(min_so_far, min_ending_here)
  27. return min_so_far
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement