本题可利用递归,将不同索引的数据加入到子集中,由于是不重复的数据,在添加之前判断子集是否已在结果中
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @return int整型二维数组
#
class Solution:
def __init__(self):
self.nums = []
def subsets(self , nums: List[int]) -> List[List[int]]:
# write code here
self.all_subsets(0, sorted(nums), [])
return self.nums
def all_subsets(self, s: int, nums: List[int], subsets: List[int]) -> None:
if s > len(nums):
return
if subsets not in self.nums:
self.nums.append(list(subsets))
for i in range(s, len(nums)):
self.all_subsets(i + 1, nums, subsets + [nums[i]])