非空子集

请编写一个方法,返回某集合的所有非空子集。
给定一个int数组A和数组的大小int n,请返回A的所有非空子集。保证A的元素个数小于等于20,且元素互异。各子集内部从大到小排序,子集之间字典逆序排序,见样例。
测试样例:

[123,456,789]
返回:{[789,456,123],[789,456],[789,123],[789],[456 123],[456],[123]}

方法一:

class Subset:
    # 返回二维[[],[],[]]
    def getSubsets(self, A, n):
        # write code here
        A.sort(reverse=True)
        self.result = []
        self.getS(A,n,[])
        return self.result


    def getS(self,A,n,buff):
        buff1 = [v for v in buff]

        buff1.append(A[-n])

        if n == 1:
            self.result.append(buff1)

            if buff:
                self.result.append(buff)

            return
        self.getS(A,n-1,buff1)
        self.getS(A,n-1,buff)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,417评论 0 2
  • 更多内容请挪步我的博客 前言 最近为[伯乐在线]翻译一篇文章(该文章尚未发布),作者 Russ Bishop 谈到...
    AliciaRain阅读 2,494评论 0 5
  • 破旧的娃娃机里有一只崭新的洋娃娃 隔着灰蒙蒙的玻璃 看着来往的行人笑着 墙角破旧的洋娃娃萎顿在地板上 长长的睫毛垂...
    意莫安阅读 129评论 0 0
  • 大虾的营养成分非常丰富,尤其家中有孩子的,定期给孩子做点大虾吃可以给孩子补充很多的维生素和微量元素,还能提高孩子的...
    万味林净菜阅读 605评论 0 0
  • 从我开始记忆时,一直到高中毕业。我就没怎么上街剪头发,因为村里有个会剃头的师傅,他就是为我们整个村服务的。 他叫文...
    墨笔生徽阅读 1,799评论 12 44