subsets

来源:互联网 发布:网络之复仇剑士下载 编辑:程序博客网 时间:2024/06/05 13:33
#coding:utf-8'''Created on 2017-9-24@author: 刘帅'''def subsets(nums):    res = []    backtrack2(res,nums,[],0)    return resdef backtrack(res,nums,stack,pos):    if pos == len(nums):        res.append(list(stack))    else:        stack.append(nums[pos])        print nums[pos]        backtrack(res, nums, stack, pos + 1)        stack.pop()        backtrack(res, nums, stack, pos + 1)# simplified backtrackdef backtrack2(res, nums, cur, pos):     if pos >= len(nums):         res.append(cur)     else:         backtrack2(res, nums, cur+[nums[pos]], pos+1)         backtrack2(res, nums, cur, pos+1)        # Iterativelydef subsets2(self, nums):    res = [[]]    for num in sorted(nums):        res += [item+[num] for item in res]    return restest = [1,2,3]print(test)print(subsets(test))