Skip to content

Latest commit

 

History

History
31 lines (29 loc) · 803 Bytes

27. 子集.md

File metadata and controls

31 lines (29 loc) · 803 Bytes

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        n = len(nums)
        res = []
        #将要遍历的数组中元素索引
        ind = 0
        #当前组合
        cur = []
        #构造递归
        def dfs(ind, cur):
            #递归终止条件
            if ind == n:
                res.append(cur)
                return 
            #情况1
            dfs(ind+1, cur+[nums[ind]])
            #情况2
            dfs(ind+1, cur)
        #调用递归
        dfs(ind, cur)
        #返回要优化的目标
        return res