组合类DFS-079求子集

问题:给定一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

回溯dfs

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        res = []
        self.back_tracking(nums, 0, [], res) # 原list,起始索引,path(当前路径),结果
        return res

    def back_tracking(self, nums, idx, path, res):
        res.append(path[:])
        for i in range(idx, len(nums)):
            path += [nums[i]]
            self.back_tracking(nums, i+1, path, res)  # 开始分支
            path.pop()  # 回退
        return 

 

posted @ 2022-07-31 13:16  今夜无风  阅读(18)  评论(0编辑  收藏  举报