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