回溯——子集(python)

张开发
2026/4/19 10:03:13 15 分钟阅读

分享文章

回溯——子集(python)
思路将树型结构画出来理解。对于一个数可以选或者不选这是关键。当到达最后一个位置时也就是到达树型结构最底层时收集答案。关键点对于一个数可以选或者不选path.append(nums[i]) #选择该数dfs(pos1) #带着选好的数递归到下一层path.pop() #不选该数dfs(pos1) #不选该数递归到下一层import sys from typing import List def subsets(nums:List[int])-List[List[int]]: res[] path[] nlen(nums) def dfs(pos): nonlocal res if posn: #收集答案 res.append(path[:]) return path.append(nums[pos]) #选择该数字 dfs(pos1) #带着这个数进入下一层递归 path.pop() #不选择该数字 dfs(pos1) #不带该数字进入下一次递归 dfs(0) print(res) return def main(): linesys.stdin.readline().strip() if not line: return numslist(map(int,line.split())) subsets(nums) if __name____main__: main()

更多文章