Advertisement
rishu110067

Untitled

Feb 10th, 2022
828
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.72 KB | None | 0 0
  1. def helper(slate,problem,idx,target,length):
  2.         if sum(slate) == target:
  3.             return [slate]
  4.         if idx == length or sum(slate) > target or target - sum(slate) > sum(problem[idx:]):
  5.             return []
  6.         else:
  7.             count = 1
  8.             current = idx
  9.             while idx+1 < length and problem[idx] == problem[idx+1]:
  10.                 count = count + 1
  11.                 idx = idx + 1
  12.             results = []            
  13.             for i in range (0,count+1):
  14.                 results += helper(slate + [problem[current]]*i,problem,idx+1,target,length)
  15.             return results
  16.        
  17. def generate_all_combinations(arr, target):
  18.     arr.sort()
  19.     return helper([],arr,0,target,len(arr))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement