Problem
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],
[]
]
解题思路
这道题算是十分简单的一题,如果我们走到了当前数字,已经求解出了之前的所有数字组成的集合,那么对于当前的数字,我们只有两种选择,要么取,要么不取,当我们选择不取当前的数字时,就相当于是将之前的所有集合拷贝了一次;当我们选择取当前的数字时,就相当于是在之前的所有集合之后添加上了当前数字。
代码如下:
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
ans = [[]]
for i in range(len(nums)):
length = len(ans)
for j in range(length):
tmp = ans[j].copy()
tmp.append(nums[i])
ans.append(tmp)
return ans