[LeetCode]78. 子集

78. 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]

解法1

class Solution:
    def subsets(self, nums):
        res = []
        nums.sort()
        for i in range(0, len(nums)+1):
            self.findSub(i, res, nums, [])
        return res
    
    def findSub(self, k, res_list, nums, sub_list):
            if k == len(sub_list):
                res_list.append(sub_list)
            else:
                for i in nums:
                    self.findSub(k, res_list, nums[nums.index(i)+1:], sub_list+[i])

解法2

解法1的简化版

class Solution:
    def subsets(self, nums):
        ans = []
        def find(cur,num):
            for i in range(len(num)):
                ans.append(cur+[num[i]])
                find(cur+[num[i]], num[i+1::])
        find([], nums)
        return ans+[[]]

解法3

class Solution:
    def subsets(self, nums):
        res = [[]]
        for num in nums :
            for temp in res[:] :
                x = temp[:]
                x.append(num)
                res.append(x)
        return res

解法4

class Solution:
    def subsets(self, nums):
        n=len(nums)
        if n==0:
            return []
        res=[]
        for i in range(2**n):
            s=i
            newlist=[]
            for j in range(n):
                bitj=s%2
                s=s//2
                if bitj:
                    newlist.append(nums[j])
            res.append(newlist)
        return res
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文欢迎关注http://blackblog.tech/2018/06/03/LeetCodeReview/欢迎关...
    BlackBlog__阅读 2,158评论 0 9
  • 算法思想贪心思想双指针排序快速选择堆排序桶排序荷兰国旗问题二分查找搜索BFSDFSBacktracking分治动态...
    第六象限阅读 4,919评论 0 0
  • <center>#1 Two Sum</center> link Description:Given an arr...
    铛铛铛clark阅读 2,388评论 0 3
  • 规则引擎 相关介绍 规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的其中一个分支。专家系统属于...
    xiaolyuh阅读 23,100评论 1 12
  • 从有想法到苦思冥想公众号名称、定问等问题导致拖延症、强迫症发作,最后把心一横开始干,然后产出接连产出几篇长篇,现在...
    65f9370eaa13阅读 3,143评论 1 5

友情链接更多精彩内容