【代码随想录算法训练营第五十六天|卡码网98.所有可达路径】

文章目录

BFS和DFS的具体理论就看代码随想录了。 DFS BFS

卡码网98.所有可达路径

深度优先某种程度上和回溯真的一模一样,先进行终止条件判断,然后进入当前结点的遍历,满足条件进行操作后进入下一步的递归,最后回溯。

python 复制代码
ans = []
def dfs(root, Nodes, pre, target):
    if root == target:
        ans.append(pre[:])
        return 
    for j in range(1, target+1):
        if Nodes[root-1][j-1]:
            pre.append(j)
            dfs(j, Nodes, pre, target)
            pre.pop()
        
if __name__ == '__main__':
    NM = input().split()
    N, M = int(NM[0]), int(NM[1])
    ss, ts = [], []
    for i in range(M):
        st = input().split()
        s, t = int(st[0]), int(st[1])
        ss.append(s)
        ts.append(t)
    Nodes = [[False] * N for _ in range(N)]
    for i, j in zip(ss, ts):
        Nodes[i-1][j-1] = True
    dfs(1, Nodes, [1], N)
    if len(ans) == 0:
        print(-1)
    else:
        for result in ans:
            print(' '.join(map(str, result)))
相关推荐
lzhdim6 小时前
AI的分类
人工智能·算法·机器学习·分类·数据挖掘
凤凰院凶涛QAQ9 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
w_zero_one10 小时前
算法--模拟
java·数据结构·算法
秋天的怀念_David11 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法
秋天的怀念_David12 小时前
算法一千零一夜 · 第十四夜 幻方与奇妙的二进制
java·程序人生·算法
薛定e的猫咪12 小时前
(ICLR 2020)MAML 靠的不是快速学习,而是特征复用
人工智能·深度学习·学习·算法·机器学习
薛定e的猫咪12 小时前
(ICLR 2026)DF-META:面向 FJSP 的无导数元学习实例自适应调度
人工智能·深度学习·学习·算法·机器学习
小羊没烦恼!14 小时前
异步编程:线程概述及使用
java·开发语言·mysql·算法·c#
wanderist.14 小时前
202609CSP认证P3
算法
云淡风轻~窗明几净14 小时前
角谷猜想最接近严格证明的测试 Version1.1.1
人工智能·算法·机器学习·图论