对于给定的正整数n(n>1),求1-n构成集合的所有子集 一年前的题了 换了个语言在写一遍
# 对于给定的正整数n(n>1),求1-n构成集合的所有子集
from typing import List
class Solution:
def subsets(self, n: int) -> List[List[int]]:
# 生成初始列表
nums = list(range(1, n + 1))
# 初始化结果集
res = []
# 调用 dfs 方法生成所有子集
self.dfs(0, nums, [], res)
# 返回结果集
return res
def dfs(self, i: int, nums: List[int], path: List[int], res: List[List[int]]):
# 将当前子集的副本加入到结果集中
res.append(path[:])
# 遍历后续元素,生成新的子集
for j in range(i, len(nums)):
# 将新元素加入到子集中
path.append(nums[j])
# 递归调用 dfs 方法生成新的子集
self.dfs(j + 1, nums, path, res)
# 回溯,将新元素从子集中移除
path.pop()
def main():
# 初始化解法对象
solution = Solution()
# 输入要生成子集的正整数
n = 5
# 生成所有子集并输出结果
subsets = solution.subsets(n)
print(subsets)
if __name__ == "__main__":
main()