Guest User

Untitled

a guest
May 25th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. # Given an array of integers and a number x, find the smallest subarray with sum greater than the given value.
  2.  
  3. """
  4. arr[] = {1, 4, 45, 6, 0, 19}
  5. x = 51
  6. Output: 3
  7. Minimum length subarray is {4, 45, 6}
  8. """
  9.  
  10. save = None
  11.  
  12. def checkArray(arr, val):
  13. global save
  14. if sum(arr) > val:
  15. print("----HIT: ", arr, sum(arr))
  16. if save is None:
  17. print("FIRST SAVE", arr)
  18. save = arr
  19. elif len(arr) < len(save):
  20. print("~~~SAVE~~~", arr)
  21. save = arr
  22.  
  23.  
  24. def smallestArray(arr, val):
  25. global save
  26. for i in range(0, len(arr)):
  27. tmp = [] # new subarray at each index
  28. for x in range(i, len(arr)):
  29. tmp.append(arr[x])
  30. checkArray(list(tmp), val) # pass a list so that the nums are immutable
  31.  
  32. print("FINAL ANSWER: ", save)
  33.  
  34.  
  35. # smallestArray([1, 4, 45, 6, 0, 19], 51)
  36.  
  37. smallestArray([1, 11, 100, 1, 0, 200, 3, 2, 1, 250], 280)
  38. # smallestArray([1, 2, 4], 8)
Add Comment
Please, Sign In to add comment