通过递归,然后根据条件当当前元素的下标小于数组长度的时候,可以把他放到结果中。
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
def dfs(i,path,result):
if i <= len(nums):
result.append(path[:])
for j in range(i,len(nums)):
dfs(j+1,path+[nums[j]],result)
if len(nums)==0:
return [[]]
result=[]
dfs(0,[],result)
return result
迭代方法,每次将数组nums中的元素与答案res子集中已经存在的数组进行组合。
!!!注意这种方法
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

京公网安备 11010502036488号