Faaez Razeen

Combination Sum II

  • 3 min read
  • LC-Medium
  • Backtracking

3 years ago

Solution

TimeSpaceExplanation
O()O()
def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]: candidates.sort() ans = [] def dfs(i, cur_sum, sub): if cur_sum == target: ans.append(sub) return if i == len(candidates) or cur_sum > target: return dfs(i + 1, cur_sum + candidates[i], sub + [candidates[i]]) while i + 1 < len(candidates) and candidates[i] == candidates[i + 1]: i += 1 dfs(i + 1, cur_sum, sub) dfs(0, 0, []) return ans