给定一个含不同整数的集合,返回其所有的子集
样例
如果 S = [1,2,3],有如下的解:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
Python:
class Solution:
"""
@param S: The set of numbers.
@return: A list of lists. See example.
"""
# recursion
'''
def subsets(self, S):
result = []
s = sorted(S)
self.dfs(s, 0, [], result)
return result
def dfs(self, s, num, tmp, result):
result.append(tmp)
for i in range(num, len(s)):
self.dfs(s, i+1, tmp + [s[i]], result)
'''
# iteration
def subsets(self, S):
s = sorted(S)
result = [[]]
for i in s:
result += [item + [i] for item in result]
return result