【代码随想录算法训练营第五十六天|卡码网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)))
相关推荐
白熊1889 分钟前
【图像大模型】AnimateDiff:基于扩散模型的视频生成技术解析与实践指南
人工智能·算法·音视频
虾球xz1 小时前
游戏引擎学习第309天:用于重叠检测的网格划分
c++·学习·算法·游戏引擎
买了一束花2 小时前
预分配矩阵内存提升文件数据读取速度
java·人工智能·算法·matlab
不忘不弃3 小时前
由浮点数的位级表示判断大小关系
c语言·算法
wuqingshun3141593 小时前
蓝桥杯 3. 涂色
c++·算法·职场和发展·蓝桥杯·深度优先
白杆杆红伞伞3 小时前
05_核支持向量机
算法·机器学习·支持向量机
wuqingshun3141593 小时前
蓝桥杯 10. 安全序列
c++·算法·职场和发展·蓝桥杯·深度优先
和八哥的环球探险4 小时前
数据结构与算法分析实验14 实现基本排序算法
数据结构·算法·排序算法
Allo2024 小时前
人脸识别流程与算法对比报告
算法