Advertisement
Guest User

Untitled

a guest
Nov 14th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. def subMaxSum(arr):
  2. if len(arr) == 0:
  3. print(0)
  4. return
  5. max_sum = arr[0]
  6. sums = []
  7. end = 0
  8. sums.append(arr[0])
  9. for i in range(1, len(arr)):
  10. val = max(arr[i] + sums[i-1], arr[i])
  11. prev = val
  12. sums.append(val)
  13. if val > max_sum:
  14. end = i
  15. max_sum = val
  16. seq = []
  17. for i in range(end, -1, -1):
  18. if sums[i] == arr[i]:
  19. seq.append(arr[i])
  20. break
  21. seq.append(arr[i])
  22. seq.reverse()
  23. return seq, max_sum
  24.  
  25. #arr = [5, 15, -30, 10, -5, 40, 10]
  26. arr = [-5, -15, -30, -1, -5, -40, -10]
  27. seq,m_sum = subMaxSum(arr)
  28. print(seq, m_sum)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement