Leetcode 78

Question1

Solution

依旧修改第46题代码,每递归一次将temp添加到results上,并且修改判断语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
results = []
self.dfs(nums, [], results)
return results

def dfs(self, nums, temp, results):
results.append(temp)
if not nums:
return

for i in range(len(nums)):
self.dfs(nums[i+1:], temp+[nums[i]], results)

Question2

Solution

额外添加一个控制条件,防止重复出现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
results = []
self.dfs(nums, [], results)
return results

def dfs(self, nums, temp, results):
results.append(temp)

if not nums:
return

for i in range(len(nums)):
self.dfs(nums[i+1:], temp+[nums[i]], results)