Faaez Razeen

Subsets

  • 2 min read
  • LC-Medium
  • Backtracking

3 years ago

Solution

TimeSpaceExplanation
O(n * 2^n)O(n * 2^n)2^n for the recursive calls- n for copying value of cur to ans
def subsets(self, nums: List[int]) -> List[List[int]]: cur, ans = [], [] def dfs(i): if i == len(nums): ans.append(cur[:]) return dfs(i + 1) cur.append(nums[i]) dfs(i + 1) cur.pop() dfs(0) return ans

Alternative Soln.

def subsets(self, nums: List[int]) -> List[List[int]]: ans = [] def dfs(i, sub): if i == len(nums): ans.append(sub) return dfs(i + 1, sub + [nums[i]]) dfs(i + 1, sub) dfs(0, []) return ans