原题:
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
在真实的面试中遇到过这道题?
分析:
采用递归的思想,逐步将数组元素添加到列表中
代码:
import sys
sys.setrecursionlimit(100000)
def subsets(self, nums: list) -> list:
lis = []
max = len(nums)
def recursion(i,add):
lis.append(add)
for j in range(i,max):
recursion(j+1,add+[nums[j]])
recursion(0,[])
return lis
start=0
List=[1,2,3]
self = []
length = 2
print(subsets(self,List))
效果: