美文网首页
78. 子集(medium)

78. 子集(medium)

作者: genggejianyi | 来源:发表于2019-06-03 22:45 被阅读0次

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
    说明:解集不能包含重复的子集。
    示例:
    输入: nums = [1,2,3]
    输出:
    [
    [3],
    [1],
    [2],
    [1,2,3],
    [1,3],
    [2,3],
    [1,2],
    []
    ]

    • show the code:
    class Solution:
        def subsets(self, nums: List[int]) -> List[List[int]]:
            res = [[]]
            for i in range(len(nums)):
                for subres in res[:]:
                    res.append(subres+[nums[i]])
            return res
    
    • 参考评论大神的方法,可以找出规律:从前向后遍历,每新来一个数就是将已有子集加上这个数即可。
    • 初始集合为res = [[]],可以从前向后遍历数组,也可以从后向前遍历数组,每新来一个数就是已有集合中的每个子集都加上这个数即可。
    • 这里一个小trick:循环每个子集时要用res[:]切片操作,这样在循环过程中,res的变化不会影响循环。

    相关文章

      网友评论

          本文标题:78. 子集(medium)

          本文链接:https://www.haomeiwen.com/subject/fhfkxctx.html