78. Subsets

78. Subsets

我們需要一個長度來終結 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
class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:

        res = []
        n = len(nums)

        def backtrack(curr, start):
            res.append(list(curr))
            
            for i in range(start, n):
                curr.append(nums[i])
                backtrack(curr, i + 1)
                curr.pop()
        

        backtrack([], 0)
        
        return res