之前的回溯问题是取部分叶子节点,而子集问题是取全部的叶子节点
class Solution(object):
def subsets(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
def backtracking(path, start):
res.append(path[:])
for i in range(start, n): # 递归的终止条件为start大于n时
path.append(nums[i])
backtracking(path, i+1)
path.pop()
n = len(nums)
res = []
backtracking([], 0)
return res
nums = [1,2,3]
print(Solution().subsets(nums))
本文介绍了一种使用递归策略解决回溯问题和子集问题的Python代码,通过backtracking函数生成所有可能的子集,以列表形式返回给定整数数组nums的所有子集。
783

被折叠的 条评论
为什么被折叠?



