【代码随想录Day48】图论Part01

图论理论基础

题目链接/文章讲解:图论理论基础 | 代码随想录

深搜理论基础

题目链接/文章讲解:深度优先搜索理论基础 | 代码随想录

98. 所有可达路径

题目链接/文章讲解:代码随想录

java 复制代码
class Solution {
    // 存储所有从源节点到目标节点的路径
    List<List<Integer>> result = new ArrayList<>();
    // 存储当前路径的节点
    List<Integer> path = new LinkedList<>();

    // 主函数,接收图的邻接矩阵并开始深度优先搜索
    public List<List<Integer>> allPathsSourceTarget(int[][] graph) {
        // 从源节点(节点0)开始,添加到当前路径中
        path.add(0);
        // 调用DFS函数,开始搜索路径
        dfs(graph, 0);
        // 返回所有找到的路径
        return result;
    }

    // 深度优先搜索函数
    public void dfs(int[][] graph, int startIndex) {
        // 如果当前节点是目标节点(最后一个节点),则将当前路径添加到结果中
        if (startIndex == graph.length - 1) {
            result.add(new ArrayList<>(path)); // 将当前路径的副本添加到结果
            return; // 结束当前递归
        }
        // 遍历当前节点的所有邻接节点
        for (int i = 0; i < graph[startIndex].length; i++) {
            // 将邻接节点添加到当前路径
            path.add(graph[startIndex][i]);
            // 递归调用DFS,继续搜索下一个节点
            dfs(graph, graph[startIndex][i]);
            // 回溯:从当前路径中移除最后添加的节点
            path.removeLast();
        }
    }
}

广搜理论基础

题目链接/文章讲解:广度优先搜索理论基础 | 代码随想录

相关推荐
lkbhua莱克瓦243 分钟前
TCP通信练习4-上传文件名重复问题
java·网络·网络协议·tcp/ip·tcp
wljun7393 分钟前
六、OrcaSlicer 切片之区域
算法·切片软件 orcaslicer
INGg__6 分钟前
Java面试现场:从简单到复杂
java·面试·技术
毕设源码-赖学姐8 分钟前
【开题答辩全过程】以 高校图书馆座位预约管理系统为例,包含答辩的问题和答案
java·spring boot
2401_841495648 分钟前
【LeetCode刷题】跳跃游戏Ⅱ
数据结构·python·算法·leetcode·数组·贪心策略·跳跃游戏
leaves falling10 分钟前
动态规划讲解
算法·动态规划
网安_秋刀鱼12 分钟前
【java安全】java安全基础
java·开发语言·安全·web安全
钓鱼的肝26 分钟前
GESP系列(3级)小杨的储蓄
开发语言·数据结构·c++·笔记·算法·gesp
MicroTech202533 分钟前
MLGO微算法科技推出人工智能与量子计算融合新成果:基于QLSS与LCHS的量子DPM算法技术
人工智能·科技·算法
ZePingPingZe37 分钟前
不使用Spring事务的管理—原生JDBC实现事务管理
java·数据库·spring