zoukankan      html  css  js  c++  java
  • 78.子集

    题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。

    示例:

    输入: nums = [1,2,3]
    输出:
    [
    [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []

    ]

    思路1:python库函数

    class Solution:
        def subsets(self, nums: List[int]) -> List[List[int]]:
            res = []
            for i in range(len(nums)+1):
                for tmp in itertools.combinations(nums, i):
                    res.append(tmp)
            return res
    

    思路2:迭代

    class Solution:
        def subsets(self, nums: List[int]) -> List[List[int]]:
            res = [[]]
            for i in nums:
                res = res + [[i] + num for num in res]
            return res
    

    思路3:回溯算法

    class Solution:
        def subsets(self, nums: List[int]) -> List[List[int]]:
            res = []
            n = len(nums)
            
            def helper(i, tmp):
                res.append(tmp)
                for j in range(i, n):
                    helper(j + 1,tmp + [nums[j]] )
            helper(0, [])
            return res  
    

    链接:https://leetcode-cn.com/problems/subsets/solution/hui-su-suan-fa-by-powcai-5/

     

  • 相关阅读:
    测试管理工具
    测试用例--zy
    测试计划和测试用例
    测试用例
    软件测试基础
    异步任务 ---- django-celery
    图片验证码接口
    测试作业
    数据库原理
    HTTPS原理
  • 原文地址:https://www.cnblogs.com/USTC-ZCC/p/13054079.html
Copyright © 2011-2022 走看看