当前位置: 首页 > article >正文

【代码随想录Day48】图论Part01

图论理论基础

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

深搜理论基础

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

98. 所有可达路径

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

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();
        }
    }
}

广搜理论基础

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


http://www.kler.cn/news/365011.html

相关文章:

  • 【进阶OpenCV】 (19)-- Dlib库 --人脸表情识别
  • 空间音频技术
  • colcon构建ros2功能包时,出现exited with code 2报错的解决方案(bug)
  • Python URL编码
  • 闯关leetcode——206. Reverse Linked List
  • K8S系列-Kubernetes网络
  • Pytorch复习
  • Python自动化测试+邮件推送+企业微信推送+Jenkins
  • 如何做出高质量的PPT报告
  • Python画笔案例-092 绘制 吃豆人图案
  • The First:Starknet如何让以太坊更快更安全?
  • 202409电子学会青少年机器人技术等级考试(一级)真题
  • 华为云数据治理中心:全面保护您的业务安全
  • spark统一内存模型 详解
  • 【重学 MySQL】七十七、掌握存储过程与存储函数的查看、修改与删除技巧
  • nginx的负载均衡配置和重定向
  • FFmpeg 库的简要说明
  • 1.ubuntu下安装noetic
  • vue2解决uniapp使用uview的u-popup弹出层,遮罩下主页面还可以滑动问题
  • 【AscendC算子开发】笔记2 算子高级开发和调试调优
  • C++STL面试题笔记 01 vector、list
  • 电脑无法开机,怎么解决?
  • 10分钟快速学会Git使用
  • Codeforces Round 660 (Div. 2) D. Captain Flint and Treasure(图论建模,拓扑排序)
  • 【树莓派 5B】anaconda换源 更换清华源
  • MapReduce 与 Spark 的shuffle对比