给你一个整数数组nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
示例 1:
输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 示例 2:输入:nums = [0]
输出:[[],[0]]提示:
1 <= nums.length <= 10
-10 <= nums[i] <= 10 nums 中的所有元素 互不相同
其实代码很简单,只是思路要想得通
n = list(map(int, input().split()))
num = [[]]
for i in n: # 循环遍历列表n
for j in range(len(num)): # 循环遍历列表num
num.append(num[j] + [i]) # 其实就是把列表n的每一个值,加一遍到num中
print(num)
也就是:
第一遍:[[]]
第二遍:[[],[1]]
第三遍:[[],[1],[2],[1,2]]
第四遍:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
这里最早的那个空列表很关键!