• 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/

     

  • 相关阅读:
    异常处理
    弹出对话框
    ef——存储过程
    事务
    linq——常用方法
    Linq
    asp get与post获取的区别
    Web服务的调用
    AJAX控件——多层弹出Accordion
    数据绑定
  • 原文地址:https://www.cnblogs.com/USTC-ZCC/p/13054079.html
Copyright © 2020-2023  润新知