题解 | #集合的所有子集(一)#

集合的所有子集(一)

http://www.nowcoder.com/practice/c333d551eb6243e0b4d92e37a06fbfc9

回溯

#
# @param S int整型一维数组 
# @return int整型二维数组
#
class Solution:
    def subsets(self , S: List[int]) -> List[List[int]]:
        # res收集所有子集,track记录访问过的元素
        res,track = [],[]
        def backTrack(S,start,track):
            res.append(track[:])
            if len(track) == len(S):
                return 
            for i in range(start,len(S)):
                track.append(S[i])
                backTrack(S, i+1, track) # start=i+1,每次下标递增1,避免出现子集重复的情况,如[2,4]与[4,2]
                track.pop()
                
        backTrack(S, 0, track)
        return res
全部评论

相关推荐

点赞 评论 收藏
分享
07-01 19:00
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务