【代码随想录算法训练营第五十六天|卡码网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)))
相关推荐
0 0 06 小时前
CCF-CSP 39-2 水印检查(watermark)【C++】
c++·算法
plus4s6 小时前
2月15日(78,80,81题)
c++·算法·图论
能源系统预测和优化研究7 小时前
【原创改进代码】考虑碳交易与电网交互波动惩罚的共享储能电站优化配置与调度模型
算法·能源
935967 小时前
机考27 翻译21 单词14
c语言·数据结构·算法
回敲代码的猴子8 小时前
2月14日打卡
算法
blackicexs9 小时前
第四周第七天
算法
期末考复习中,蓝桥杯都没时间学了9 小时前
力扣刷题19
算法·leetcode·职场和发展
Renhao-Wan9 小时前
Java 算法实践(四):链表核心题型
java·数据结构·算法·链表
zmzb010310 小时前
C++课后习题训练记录Day105
开发语言·c++·算法
好学且牛逼的马11 小时前
【Hot100|25-LeetCode 142. 环形链表 II - 完整解法详解】
算法·leetcode·链表