For example, If nums = [1,2,3], a solution is:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
My code is following:
class Solution(object):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
def subsets(self, nums):
if not nums or len(nums) == 0:
return
nums.sort()
subset = []
results = [[]]
self.subsetHelper(nums, 0, subset, results)
return results
def subsetHelper(self, nums, startIndex, subset, results):
# subset is 1D list store elements that create results
# results is 2D list that store results created
results.append(subset)
for i in range(startIndex, len(nums)):
subset.append(nums[i])
# recursion:
self.subsetHelper(nums, i+1, subset, results)
# backtracking:
subset.pop()
While the answer of [1,2,3] suppose to be :
[[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]
My answer is :
[[],[],[],[],[],[],[],[],[]]
Can somebody tell me where did I go wrong, and how to modify it in order to get [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
Thanks.