📅  最后修改于: 2023-12-03 15:28:04.133000             🧑  作者: Mango
当需要在程序中使用集合的所有子集时,可以按照如下的方式计算子集:
这个过程可以使用迭代方式实现,具体的代码如下:
def subsets(nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
res = [[]]
for num in nums:
res += [item+[num] for item in res]
return res
其中,res
表示所有的子集,初始时只有空集。在遍历 nums
中的每个元素时,依次将该元素加入到 res
中的每一个子集之中,得到新的子集,并将其添加到 res
中。
使用时,只需要调用 subsets()
函数并传入集合即可,函数将返回所有的子集。该算法的时间复杂度为 O(2^n),因为集合中的每个元素在子集中都有两种可能:出现或不出现。
参考资料: