我們需要一個長度來終結 backtrack ,所以多傳了一個參數 k 做為判斷 Backtrack 終止的條件。
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
ans = []
n = len(nums)
def backtrack(k, curr, start):
if len(curr) == k:
ans.append(list(curr))
return
for i in range(start, n):
curr.append(nums[i])
backtrack(k, curr, i + 1)
curr.pop()
for k in range(len(nums) + 1):
backtrack(k, [], 0)
return ans