-
- 组合总和
-
- 所有可能的路径
39.组合总和
class Solution:
def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:
def dfs(candidates,begin,size,path,res,target):
if target < 0:
return
if target == 0:
res.append(path)
return
for i in range(begin,size):
dfs(candidates,i,size,path+[candidates[i]],res,target-candidates[i])
res = []
path = []
size = len(candidates)
dfs(candidates,0,size,path,res,target)
return res
797. 所有可能的路径
有向图,graph[x]代表从x能走向的节点
graph = [[1,2],[3],[3],[]]
0 1 2 3
0指向1、2
1指向3
2指向3
3无指向
class Solution:
def allPathsSourceTarget(self, graph: List[List[int]]) -> List[List[int]]:
def dfs(x,ans,path):
if x == len(graph)-1:
ans.append(path)
return
for y in graph[x]:
dfs(y,ans,path+[y])
ans = []
path = [0]
dfs(0,ans,path)
return ans