DFS, 找所有方案 一定要用

BFS,找最短距离

DFS recursion 三个注意点:

  1. 定义
  2. 如何把问题 变小
  3. 出口

DFS 总结:

  1. template
  2. 注意点,所有dfs 的变种 其实都只在 dfsVisit recursion function 里面,
    1. for loop 开始与结束 位置
    2. if 语句决定 跳过 duplicate condition, 还是 进入到 下一层的dfsVisit recursion

Template of DFS

def dfs(V, adj):
    parent = {}
    for s in V:
        if s not in parent:
            parent[s] = None
            dfs_visit(adj, s)

DFS - Visit:

parent = {s: None}

# adj is a set 
def dfs_visit(adj, s):
    for v in adj[s]:
        if v not in parent:
            parent[v] = s
            dfs_visit(adj, s)

results matching ""

    No results matching ""