首页 > 其他 > 详细

求子集

时间:2020-07-25 19:45:45      阅读:48      评论:0      收藏:0      [点我收藏+]

方法一:每一次遍历,都在前面已有的集合里,再加上一个元素。


代码一:
def subsets(nums):

  result = [[]]

  for num in nums:

    for element in result[:]:

      x=element[:]

      x.append(num)

      result.append(x)       

  return result

代码二:
def subsets_2(nums):

  res = [[]]

  for num in nums:

    res += [ i + [num] for i in res]

  return res

 

二进制法

def PowerSetsBinary(nums):

  N = len(nums)
  res = []

  for i in range(2**N):

    combo = []

    for j in range(N):

      if(i >> j ) % 2 == 1:

        combo.append(nums[j])

    res.append(combo)

  return res


 

 

求子集

原文:https://www.cnblogs.com/double-li912/p/13375718.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!