leetcode 78 子集

通过递归,然后根据条件当当前元素的下标小于数组长度的时候,可以把他放到结果中。

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        def dfs(i,path,result):

            if i <= len(nums):
                result.append(path[:])

            for j in range(i,len(nums)):                
                dfs(j+1,path+[nums[j]],result)
        if len(nums)==0:
            return [[]]
        result=[]
        dfs(0,[],result)
        return result

迭代方法,每次将数组nums中的元素与答案res子集中已经存在的数组进行组合。
!!!注意这种方法

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        res=[[]]
        for i in nums:
            res=res+[[i]+ num for num in res]
        return res
全部评论

相关推荐

溱元:前端每年固定死几次,看两集广告就复活了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务