【代码随想录|第十一章 图论part01 | 797.所有可能的路径 】


python

一、图论理论基础

1.图的基本概念

度:几个连接的边。出度、入度

连通图+有向图=强连通图

连通分量:必须是极大联通子图才行
强连通分量: 有向图+连通分量

2.图的构造

如何用代码表示?邻接表、邻接矩阵、类
朴素存储、邻接表、邻接矩阵

1)邻接矩阵

grid[2][5]=6表示节点2 连接向 节点5 ,权值为6

2)邻接表

数组(节点)+链表(相连节点)

3.图的遍历方式

两类:深度优先搜索dfs/广度优先搜索bfs

4.深度优先搜索理论基础

先一直往一个方向走到死角
有递归就有回溯
dfs三部曲:1、参数 2、终止条件 3、处理目前的搜索节点出发的路径

二、797.所有可能的路径

797.所有可能的路径

1.核心代码

代码如下(示例):

class Solution:
    def allPathsSourceTarget(self, graph) :
        ans =list()
        stk = list()

        def dfs(x):
            if x ==len(graph)-1:
                ans.append(stk[:])
                return

            for y in graph[x]:
                stk.append(y)
                dfs(y)
                stk.pop()

        stk.append(0)
        dfs(0)
        return ans

if __name__=="__main__":
    raw_input=input()
    graph=eval(raw_input)
    solution=Solution()
    result=solution.allPathsSourceTarget(graph)
    # 若输出格式无空格
    result2=str(result).replace(" ","")
    print(result2)

2.问题

记住,可以将字符串自动解析成列表+链表形式的代码

    graph=eval(input())

** 能够处理输入如:[[1,2],[3],[3],[]] **
输入输出部分主要是增加了一个这个输入的函数的学习
然后核心代码部分:

有二维的数组用list()链表来创建
其他看起来还比较简单,就是我还没有自己打一下

三、广搜理论基础

适合解决两个点之间的最短路径问题

用队列,保证每一圈都是一个方向去转

总结

输入输出

相关推荐

  1. 代码随想Day74(Part10)

    2024-07-19 19:58:02       29 阅读
  2. 代码随想Day72(Part08)

    2024-07-19 19:58:02       31 阅读
  3. 代码随想Day76(Part11)

    2024-07-19 19:58:02       25 阅读
  4. 代码随想算法训练营day60| 单调栈part03

    2024-07-19 19:58:02       37 阅读
  5. 代码随想-

    2024-07-19 19:58:02       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 19:58:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 19:58:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 19:58:02       58 阅读
  4. Python语言-面向对象

    2024-07-19 19:58:02       69 阅读

热门阅读

  1. 蓝牙新篇章:WebKit的Web Bluetooth API深度解析

    2024-07-19 19:58:02       23 阅读
  2. Solana开发之Anchor框架-部署到 Devnet

    2024-07-19 19:58:02       16 阅读
  3. 快速上手绿联私有云UGOS Pro系统Docker

    2024-07-19 19:58:02       19 阅读
  4. 跟ChatGPT学习go语言--int 类型如何转化成string

    2024-07-19 19:58:02       16 阅读
  5. C语言相关知识点(不定期更新内容)

    2024-07-19 19:58:02       22 阅读
  6. C++如何管理指针从而避免内存泄露

    2024-07-19 19:58:02       16 阅读
  7. OpenCV——图像与视频的保存

    2024-07-19 19:58:02       19 阅读
  8. Vue 给表格单元格加省略号和hover提示

    2024-07-19 19:58:02       18 阅读
  9. Eclipse Temurin Docker镜像

    2024-07-19 19:58:02       16 阅读
  10. npm 缓存目录

    2024-07-19 19:58:02       16 阅读
  11. vllm安装踩坑

    2024-07-19 19:58:02       23 阅读