【代码随想录算法训练营——Day50(Day49周日休息)】图论——98.所有可达路径

卡码网题目链接

https://kamacoder.com/problempage.php?pid=1170

题解
98.所有可达路径

想套用深搜或广搜的代码模板。看了一下题解的开头给了一点提示,要用深搜的模板。写了一个充满不确定性的dfs代码,让deepseek过目了一下,改了很多地方,因为是照着我的代码改的,所以改的也不对,原因如下。再看看题解。看了题解,感觉好简单,但自己写的时候就缺乏很多细节。





代码

python 复制代码
#98.所有可达路径
#邻接矩阵法
result = []
path = []
def dfs(graph, cur, n):
    if cur == n:
        result.append(path.copy())
        return
    for i in range(1, n + 1):
        if graph[cur][i] == 1:
            path.append(i)
            dfs(graph, i, n)
            path.pop()

if __name__ == "__main__":
    n, m = map(int, input().split())
    graph = [[0] * (n + 1) for _ in range(n + 1)]
    for i in range(m):
        start, end = map(int, input().split())
        graph[start][end] = 1
    path.append(1)
    dfs(graph, 1, n)
    if len(result) == 0:
        print("-1")
    for i in range(len(result)):
        for j in range(len(result[i]) - 1):
            print(f"{result[i][j]} ", end = '')
        print(result[i][len(result[i]) - 1])

#邻接表法
from collections import defaultdict

result = []
path = []
def dfs(graph, cur, n):
    if cur == n:
        result.append(path.copy())
        return
    for i in range(1, n + 1):
        if i in graph[cur]:
            path.append(i)
            dfs(graph, i, n)
            path.pop()

if __name__ == "__main__":
    n, m = map(int, input().split())
    graph = defaultdict(list)
    for i in range(m):
        start, end = map(int, input().split())
        graph[start].append(end)
    path.append(1)
    dfs(graph, 1, n)
    if len(result) == 0:
        print("-1")
    for i in range(len(result)):
        for j in range(len(result[i]) - 1):
            print(f"{result[i][j]} ", end = '')
        print(result[i][len(result[i]) - 1])
相关推荐
铉铉这波能秀几秒前
LeetCode Hot100数据结构背景知识之字典(Dictionary)Python2026新版
数据结构·python·算法·leetcode·字典·dictionary
蜡笔小马9 分钟前
10.Boost.Geometry R-tree 空间索引详解
开发语言·c++·算法·r-tree
唐梓航-求职中18 分钟前
编程-技术-算法-leetcode-288. 单词的唯一缩写
算法·leetcode·c#
仟濹20 分钟前
【算法打卡day3 | 2026-02-08 周日 | 算法: BFS】3_卡码网99_计数孤岛_BFS | 4_卡码网100_最大岛屿的面积DFS
算法·深度优先·宽度优先
Ll130452529823 分钟前
Leetcode二叉树part4
算法·leetcode·职场和发展
颜酱33 分钟前
二叉树遍历思维实战
javascript·后端·算法
宝贝儿好34 分钟前
第二章: 图像处理基本操作
算法
小陈phd1 小时前
多模态大模型学习笔记(二)——机器学习十大经典算法:一张表看懂分类 / 回归 / 聚类 / 降维
学习·算法·机器学习
@––––––1 小时前
力扣hot100—系列4-贪心算法
算法·leetcode·贪心算法
CoovallyAIHub1 小时前
让本地知识引导AI追踪社区变迁,让AI真正理解社会现象
深度学习·算法·计算机视觉