Combination Sum
Medium
Subject: Backtracking
Time Complexity
O(2^(T/M))
Space Complexity
O(T/M)
Problem Description
Given an array of distinct integers candidates and a target integer target, return a list of all unique combinations of candidates where the chosen numbers sum to target.
Optimal Solution
Pythondef combinationSum(candidates, target):
res = []
def backtrack(start, path, total):
if total == target:
res.append(path[:])
return
if total > target:
return
for i in range(start, len(candidates)):
path.append(candidates[i])
backtrack(i, path, total + candidates[i])
path.pop()
backtrack(0, [], 0)
return res