题干:
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
算法思想:与77题大致相同
class Solution:
def subsets(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
result = []
temp = []
length = len(nums)
result = self.helper(0, length, nums, temp, result)
return result
def helper(self, level, len, nums, temp, result):
for i in range(level, len, 1):
temp.append(nums[i])
result.append(temp[:])
self.helper(i + 1, len, nums, temp, result)
temp.pop()
#result.append([])
return result
s = Solution()
res = s.subsets([1, 2, 3])
print(res)