Question
Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3]
Output:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
Solution
class Solution:
def subsets(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
res = list()
res.append([])
self.backtracking(res, nums, [], -1, len(nums))
return res
def backtracking(self, res, nums, partial, i, length):
i += 1
while i < length:
new_partial = partial + [nums[i]]
res.append(new_partial)
self.backtracking(res, nums, new_partial, i, length)
i += 1