use backtracking
class Solution(object):
def subsets(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
def subsets(res,nums,curr,begin):
res.append(curr[:])
for i in xrange(begin, len(nums)):
curr.append(nums[i])
subsets(res,nums,curr,i+1)
curr.pop()
res=[]
curr=[]
subsets(res,nums,curr,0)
return res
class Solution(object):
def subsets(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
res=[[]]
if not nums:return res
curr=[]
sorted_nums=sorted(nums)
for num in sorted_nums:
group=[]
for subset in res:
curr=subset[:]
curr.append(num)
group.append(curr)
res+=group
return res
网友评论