题解 | #集合的所有子集(二)#

集合的所有子集(二)

http://www.nowcoder.com/practice/a3dfd4bc8ae74fad9bc65d5ced7ae813

本题可利用递归,将不同索引的数据加入到子集中,由于是不重复的数据,在添加之前判断子集是否已在结果中

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param nums int整型一维数组 
# @return int整型二维数组
#
class Solution:
    def __init__(self):
        self.nums = []
        
    def subsets(self , nums: List[int]) -> List[List[int]]:
        # write code here
        self.all_subsets(0, sorted(nums), [])
        return self.nums
    
    def all_subsets(self, s: int, nums: List[int], subsets: List[int]) -> None:
        if s > len(nums):
            return
        if subsets not in self.nums:
            self.nums.append(list(subsets))
        for i in range(s, len(nums)):
            self.all_subsets(i + 1, nums, subsets + [nums[i]])
            
题解 文章被收录于专栏

算法题解

全部评论

相关推荐

苗条的伊泽瑞尔最喜欢...:同28届被压力了,电科✌就不能去卷算法吗?把Java留给我们双非卷
投递快手等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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