通过递归,然后根据条件当当前元素的下标小于数组长度的时候,可以把他放到结果中。
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