码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 78. Subsets 20170606

时间:2017-06-06 20:43:47      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:集合   append   return   type   ica   分享   题目   com   ==   

Given a set of distinct integers, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,
If nums = [1,2,3], a solution is:

[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

 题目大意:给定一个整数集合,返回其所有子集的集合。

 解题思路:为了熟悉DFS,再练习一道类似题目。该题目同样可以使用DFS,先把集合里的数按升序排列好。递归截止条件为当前子集的长度与原集合的长度相等,即当前子集等于原集合。每次递归开始前都先将当前的子集加入到子集集合中,每次递归都将nums[i]加入到子集中,然后继续递归。

技术分享

 

class Solution(object):
  def subsets(self, nums):
    """
    :type nums: List[int]
    :rtype: List[List[int]]
    """
    A = []
    def dfs(start, length, List):
      A.append(List)
      if length == len(nums):
        return
      for i in range(start, len(nums)):
        dfs(i+1, length+1, List+[nums[i]])
    nums.sort()
    dfs(0, 0, [])
    return A

 

LeetCode 78. Subsets 20170606

标签:集合   append   return   type   ica   分享   题目   com   ==   

原文地址:http://www.cnblogs.com/fangdai/p/6953294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!