子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)
说明:解集不能包含重复的子集
示例:
1 2 3 4 5 6 7 8 9 10 11 12
| 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
|
迭代
1 2 3 4 5 6
| class Solution: def subsets(self, nums: List[int]) -> List[List[int]]: res = [[]] for i in nums: res = res + [[i] + num for num in res] return res
|
递归(回溯)
1 2 3 4 5 6 7 8 9 10 11
| class Solution: def subsets(self, nums: List[int]) -> List[List[int]]: res = [] n = len(nums) def helper(i, tmp): res.append(tmp) for j in range(i, n): helper(j + 1,tmp + [nums[j]] ) helper(0, []) return res
|