我们可以使用二进制掩码来寻找所有的不同子集。对于集合中的每个元素,我们可以将其映射到二进制数的一位上,例如第一个元素映射到最低位,第二个元素映射到第二个位,以此类推。如果一个元素包含在子集中,则相应的二进制数位为1,否则为0。通过遍历所有可能的二进制数,我们可以找到所有可能的子集。
代码示例:
def find_subsets(nums):
n = len(nums)
res = []
for i in range(2**n):
tmp = []
for j in range(n):
if i & (1<
测试:
nums = [1, 2, 3]
print(find_subsets(nums)) #[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
输出:
[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]