The question is:
Given an integer array with all positive numbers and no duplicates, find the number of possible combinations that add up to a positive integer target.
Example:
nums = [1, 2, 3] target = 4
The possible combination ways are:
(1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1)
Note that different sequences are counted as different combinations.
Therefore the output is 7.
def combinationSum4(nums: List[int], target: int) -> int:
if target == 0:
return 1
elif target < 0:
return 0
elif len(nums) == 0:
return 1
else:
return combinationSum4(nums[1:], target-nums[0]) + combinationSum4(nums[1:], target)
The output is 7 but I'm getting 6 instead.