题目来源:
https://leetcode.com/problems/subsets/
题意分析:
给定一个没有重复数字的数组,返回他所有的子集。子集不能重复,子集中的元素要按照字典序排序。
题目思路:
这道题也是用递归的思想。长度为n的数组a的所有子集是数组a[:n-1]的所有子集并上其子集中每个元素append(a[n-1]).要元素按照字典序排序,首先要将数组排序。
代码(Python):

1 class Solution(object): 2 def subsets(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: List[List[int]] 6 """ 7 def subset(nums,index): 8 if index == 0: 9 return [[]] 10 tmp = subset(nums,index - 1) 11 ans = tmp[:] 12 for i in tmp: 13 ans.append(i + [nums[index -1]]) 14 return ans 15 nums.sort() 16 return subset(nums,len(nums))
转载请注明出处:http://www.cnblogs.com/chruny/p/5088529.html