377. Combination Sum IV
Given an array of distinct integers
nums
and a target integer target
, return the number of possible combinations that add up to target
.def combinationSum4_Iterative(nums: List[int], target: int):
# minor optimization
nums.sort()
dp = [0 for i in range(target+1)]
dp[0] = 1
for comb_sum in range(target+1):
for num in nums:
if comb_sum - num >= 0:
dp[comb_sum] += dp[comb_sum-num]
# minor optimization, early stopping.
else:
break
return dp[target]
def combinationSum4(self, nums: List[int], target: int):
@functools.lru_cache(maxsize = None)
def recurse(n):
if n == 0:
return 1
count = 0
for i in nums:
rem = n - i
if rem >= 0:
count += recurse(n-i)
else:
break
return count
nums.sort()
return recurse(target)
Comments
Post a Comment