zoukankan      html  css  js  c++  java
  • leetcode78 Subsets

     1 """
     2 Given a set of distinct integers, nums, return all possible subsets (the power set).
     3 Note: The solution set must not contain duplicate subsets.
     4 Example:
     5 Input: nums = [1,2,3]
     6 Output:
     7 [
     8   [3],
     9   [1],
    10   [2],
    11   [1,2,3],
    12   [1,3],
    13   [2,3],
    14   [1,2],
    15   []
    16 ]
    17 """
    18 """
    19 第一层循环依次遍历nums列表中的数字
    20 第二层遍历res列表中的元素
    21 将每个元素进行深拷贝,复制一份
    22 将复制的元素中添加nums中的数字
    23 再将添加数字后的元素添加到结果list中
    24 """
    25 class Solution:
    26     def subsets(self, nums):
    27         import copy
    28         res = [[]]
    29         for num in nums:
    30             for temp in res[:]: # 这里的res[:]是遍历res中的子list
    31                 x = temp[:]# 这里是temp[:]深拷贝,  temp为浅拷贝
    32                 # !!!可以替换成:x = copy.deepcopy(temp)
    33                 #深拷贝是将值和地址一同拷贝,
    34                 #浅拷贝只拷贝值,值的所在地址是一样的
    35                 x.append(num)
    36                 res.append(x)
    37         return res
    38 
    39 if __name__ == '__main__':
    40     a = Solution()
    41     x = a.subsets([1, 2, 3])
    42     print(x)
  • 相关阅读:
    树上莫队学习笔记
    点分治学习笔记
    7.11总结
    线段树合并学习笔记
    7.10总结
    bzoj1201: [HNOI2005]数三角形----递推+bitset
    bitset(01串)优化
    Tarjan系列1
    bsgs(Baby Steps Giant Steps)算法
    [SD2015]序列统计——solution
  • 原文地址:https://www.cnblogs.com/yawenw/p/12370047.html
Copyright © 2011-2022 走看看