我支棱起来了.jpg
思路:看到所有组合就是回溯。
从左往右慢慢来,判断要不要当前的数。
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
# 回溯
res = []
combiantion = []
def backtrack(nums, combiantion):
if 0 == len(nums):
res.append(combiantion) # nums是剩余的数
return
backtrack(nums[1:], combiantion + [nums[0]]) # 要当前的数
backtrack(nums[1:], combiantion) # 不要当前的数
backtrack(nums, combiantion)
return res