39. Combination Sum
Medium
Problem:
Input: candidates = [2,3,5], target = 8
Output: [[2,2,2,2],[2,3,3],[3,5]]Solution:
class Solution:
def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
results = []
def addition(elements):
sum = 0
if elements:
for el in elements:
sum += el
return sum
def dfs(cur):
if addition(cur) == target:
# Avoid duplicates
if sorted(cur[:]) not in results:
results.append(sorted(cur[:]))
return
for num in candidates:
if num <= target:
if num <= target - addition(cur):
cur.append(num)
dfs(cur)
cur.pop()
dfs([])
return resultsBetter approach
Last updated