Given a set of distinct integers, nums, return all possible subsets.
Note: Elements in a subset must be in non-descending order. The solution set must not contain duplicate subsets. For example, If nums = [1,2,3], a solution is:
classSolution(object): defsubsets(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ ifnot nums: return [[]] nums.sort() subsets = self.subsets(nums[1:]) for i in xrange(len(subsets)): subsets.append(nums[:1] + subsets[i]) return subsets
迭代
1 2 3 4 5 6 7 8 9 10 11 12 13
classSolution(object): defsubsets(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ rs = [[]] nums.sort(reverse=True) for x in nums: n = len(rs) for i in xrange(n): rs.append([x] + rs[i]) return rs