码迷,mamicode.com
首页 > 其他好文 > 详细

78. 子集

时间:2020-01-27 23:54:38      阅读:33      评论:0      收藏:0      [点我收藏+]

标签:lis   etl   div   ++   not   end   set   遍历   就会   

这也是一题递归的题,我仿照87.grayCode 那题编写的代码

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        if not nums:
            return []
        res = []
        def getList(L,length):
            if length == len(nums)-1:
                res.append(L)
            else:
                length += 1
                getList(L + [nums[length]],length)
                getList(L,length)
                
        getList([],-1)
        return res
 
顶层:
  每次都可以选择将 第n位元素加入list 或 不加入List 并且 n++,这样n的每一次取值会延续出两个list 就会廊阔所有的选择
 
底层:
  当n == len(nums)-1的时候,所有的选择都遍历了一遍,就可以把它装入result列表了。

78. 子集

标签:lis   etl   div   ++   not   end   set   遍历   就会   

原文地址:https://www.cnblogs.com/ChevisZhang/p/12237203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!