首页 > 其他 > 详细

集合的子集

时间:2019-08-19 12:10:32      阅读:90      评论:0      收藏:0      [点我收藏+]

题目:
给定一个数组,返回该数组所有可能的子集,包含空数组和它本身。
解题思路:
考虑是用迭代的思想。数组中只有一个数字时,返回空集合和数字本身,再新加一个数字时,将原先的所有子集加上新的数字,就是包含新数字的子集,保留之前不包含新数字的子集。这两个子集直接相加就是新的所有子集。一样地当数组长度不断增加,我们不断往原来子集上迭代新的集合即可。

def SubSet(setlist):
    # 判断边界条件
    if not setlist:
        return [[]]
    
    result = [[]]
    # 正常遍历,思路:可以再result存子集,然后在不断遍历的过程中加新的setlist
    for i in range(len(setlist)):
        for j in range(len(result)):
            result.append([setlist[i]]+result[j])
    return result

if __name__ == "__main__":
    nums= [2,3,1,6]
    print(subsets( nums))

  


 

集合的子集

原文:https://www.cnblogs.com/ivyharding/p/11375709.html

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