您的位置:首页 > 其它

LintCode 17. 子集

2018-02-06 22:00 274 查看

题目

给定一个含不同整数的集合,返回其所有的子集

注意事项

子集中的元素排列必须是非降序的,解集必须不包含重复的子集

您在真实的面试中是否遇到过这个题?

Yes

样例

如果 S = [1,2,3],有如下的解:

[

[3],

[1],

[2],

[1,2,3],

[1,3],

[2,3],

[1,2],

[]

]

挑战

你可以同时用递归与非递归的方式解决么?

标签

递归 优步 脸书

思路

水题,基础DFS。

代码

class Solution:

"""
@param: nums: A set of numbers
@return: A list of lists
"""
def __init__(self):
self.res_list = []
def dfs(self, subset, start_index, nums):
self.res_list.append(subset[:])
for i in range(start_index, len(nums)):
subset.append(nums[i])
self.dfs(subset, i + 1, nums)
subset.pop(-1)
def subsets(self, nums):
# write your code here
nums.sort()
self.dfs([], 0, nums)
return self.res_list
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: