backtracking.sum_of_subsets¶
The sum-of-subsets problem states that a set of non-negative integers, and a value M, determine all possible subsets of the given set whose summation sum equal to given M.
Summation of the chosen numbers must be equal to given number M and one number can be used only once.
Functions¶
| 
 | Creates a state space tree to iterate through each branch using DFS. | 
| 
 | The main function. For list of numbers 'nums' find the subsets with sum | 
Module Contents¶
- backtracking.sum_of_subsets.create_state_space_tree(nums: list[int], max_sum: int, num_index: int, path: list[int], result: list[list[int]], remaining_nums_sum: int) None¶
- Creates a state space tree to iterate through each branch using DFS. It terminates the branching of a node when any of the two conditions given below satisfy. This algorithm follows depth-fist-search and backtracks when the node is not branchable. - >>> path = [] >>> result = [] >>> create_state_space_tree( ... nums=[1], ... max_sum=1, ... num_index=0, ... path=path, ... result=result, ... remaining_nums_sum=1) >>> path [] >>> result [[1]] 
- backtracking.sum_of_subsets.generate_sum_of_subsets_solutions(nums: list[int], max_sum: int) list[list[int]]¶
- The main function. For list of numbers ‘nums’ find the subsets with sum equal to ‘max_sum’ - >>> generate_sum_of_subsets_solutions(nums=[3, 34, 4, 12, 5, 2], max_sum=9) [[3, 4, 2], [4, 5]] >>> generate_sum_of_subsets_solutions(nums=[3, 34, 4, 12, 5, 2], max_sum=3) [[3]] >>> generate_sum_of_subsets_solutions(nums=[3, 34, 4, 12, 5, 2], max_sum=1) []