subSets

题目

给定一个含不同整数的集合,返回其所有的子集
(子集中的元素排列必须是非降序的,解集必须不包含重复的子集)
如果 S = [1,2,3],有如下的解:

[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

解决subSets模板

先判断输入的list是否存在与长度是否大于0
使用一个subSetsHelper
params依次 是字符串本身,起始坐标,深度遍历临时存储的temp_list ret是结果
https://www.kancloud.cn/kancloud/data-structure-and-algorithm-notes/73049

解决

class Solution:
    """
    @param S: The set of numbers.
    @return: A list of lists. See example.
    """

    def subsets(self, S):
        result = []
        if(S is None or len(S) < 0):
            return result
        def subSetsHelper(nums,startIndex,temp_list,ret):
            ret.append([]+temp_list)
            for i in range(startIndex,len(nums)):
                #先添加,再移除
                temp_list.append(nums[i])
                subSetsHelper(nums,i+1,temp_list,ret)
                temp_list.pop()
        S.sort()
        subSetsHelper(S,0,[],result)
        return result
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容