给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
代码:
class Solution(object):
def subsets(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
result = self.subset_func(nums)
for line in result:
line.sort()
return result
def subset_func(self,nums):
if len(nums)==0:
return [[]]
if len(nums)==1:
return [[],nums]
first = nums[0]
tmp_nums = nums[1:]
tmp_result = self.subset_func(tmp_nums)
result = []
for key in tmp_result:
result.append(key)
tmp = list(key)
tmp.append(first)
result.append(tmp)
return result