LC 速查

HOT 100索引 › B10 回溯 Backtracking

LC 78子集Subsets 中等

给定元素互异的整数数组,返回它的全部子集(幂集),顺序不限。

思路 回溯按起点 start 枚举:进入递归先收集当前 path,再从 start 起选数递归 i+1,天然去重。O(n·2^n)。

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        ans, path = [], []

        def dfs(start):
            ans.append(path[:])
            for i in range(start, len(nums)):
                path.append(nums[i])
                dfs(i + 1)
                path.pop()

        dfs(0)
        return ans
← 上一题 全排列电话号码的字母组合 下一题 →