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

代码随想录|第十一章 图论part01 | 图论理论基础,797.所有可能的路径,广搜理论基础

  • 一、图论理论基础
    • 1.图的基本概念
    • 2.图的构造
      • 1)邻接矩阵
      • 2)邻接表
    • 3.图的遍历方式
    • 4.深度优先搜索理论基础
  • 二、797.所有可能的路径
    • 1.核心代码
    • 2.问题
  • 三、广搜理论基础
  • 总结


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[:])returnfor y in graph[x]:stk.append(y)dfs(y)stk.pop()stk.append(0)dfs(0)return ansif __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()链表来创建
其他看起来还比较简单,就是我还没有自己打一下

三、广搜理论基础

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

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

总结

输入输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql-错误处理: Found option without preceding group in config file

1、问题描述 安装MYSQL时,在cmd中“初始化”数据库时,输入命令: mysqld --initialize --consolecmd报错: D:\mysql-5.7.36-winx64\bin>mysql --initialize --console mysql: [ERROR] Found option without preceding group …

Web开发:ASP.NET CORE的后端小结(基础)

1.后端重定向到指定路由 public IActionResult Index(){return RedirectToAction("Index", "Main");//重定向>Main/Index} 【备注】如果在MainController的Index方法中return View();本质是 return View("Index"),返回和方法同名的…

Mysql中delete数据后磁盘空间浅析

在MySQL中,使用DELETE语句删除数据后,磁盘上的文件不会立即缩小,因为MySQL通常不会重建文件并删除不再使用的空间。这是因为DELETE操作只标记已删除的数据为可重用,并不立即清除物理存储空间。 为了释放磁盘空间,你需要…

windows配置python项目本地定时执行(一)

背景 之前写的一个基金数据爬取的脚本需要部署在windows系统,需要一个启动、关闭脚本 通用bat代码实现: echo offTITLE "启动bat" rem 需要处理的程序名 SET process_name"Snipaste.exe" rem 存放进程id的文件用来判断进程是否已…

部署和运维

目录 1.Git1.1. Git指令中merge和rebase的区别1. Commit 记录2. 合并方式3. 冲突处理4. 使用场景选择建议 1.2. cherry-pick的使用如何使用 git cherry-pick例子处理冲突撤销 cherry-pick其他选项 结论 2. 部署1. Nginx的使用场景 编译打包1. webpack2. webpack打包优化1. 代码…

vscode通过ssh链接远程服务器上的docker

目录 1 编译docker image1.1 编译镜像1.2 启动镜像 2 在docker container中启动ssh服务2.1 确认是否安装ssh server2.2 修改配置文件2.3 启动ssh服务 3 生成ssh key4 添加ssh公钥到docker container中5 vscode安装插件Remote - SSH6 在vscode中配置 1 编译docker image 一般来…

二叉树的前、中、后序遍历(递归法、迭代法)leetcode144/94/145

leetcode144、二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root [] 输出:[] 示例 3:…

【golang-ent】go-zero框架 整合 ent orm框架 | 解决left join未关联报错的问题

一、场景 1、子表:cp_member_point_history cp_member_point_history表中字段:cp_point_reward_id 是cp_point_reward的主键id 当本表中的cp_point_reward_id字段为0(即:没有可关联主表的) CREATE TABLE cp_member_poi…

数据结构(Java):优先级队列(堆)堆的模拟实现

目录 1、优先级队列 1.1 概念 1.2 PriorityQueue底层结构 2、 堆 2.1 堆的概念 2.2 堆的存储结构 3、优先级队列(堆)的模拟实现 3.1 堆的创建 3.1.1 向下调整算法建完整堆 3.2 堆的插入 3.2.1 向上调整算法 3.3 堆的删除 3.4 堆排序 1、优先…

CH552的bootload程序IAP直接对ROM-flash修改数据(未尝试)

手动写bootload程序的可能 1,根据ch552g的使用手册内容查看到 2,在下面的参考文件的IAP文件夹中看到IAP文件 参考 下面程序中并没有跳转到厂家bootload的过程,这是直接通过控制有关的寄存器对FLSH进行直接写入和修改,这样可以认…

如何学习Hadoop:糙快猛的大数据之路(利用GPT 学习)

目录 引言Hadoop是什么?学习Hadoop的"糙快猛"之道1. 不要追求完美,先动手再说2. 从简单的MapReduce开始3. 利用大模型加速学习4. 循序渐进,建立知识体系 构建您的Hadoop技能树1. 夯实基础:Linux和Java2. 深入理解HDFS3.…

Codeforces Round 959 sponsored by NEAR (Div. 1 + Div. 2) 20240718

A. Diverse Game 题目 彼得看着谢尔盖的流,想出了一个矩阵 a a a ,由 n n n 行和 m m m 列组成( i i i 第一行和 j j j 第列中的数字表示为 a i , j a_{i, j} ai,j​ ),它包含了从 1 1 1 到 n ⋅ m n \cdot m n⋅m 的所有整数。但是…

GreenDao实现原理

GreenDao 是一款针对 Android 平台优化的轻量级对象关系映射 (ORM) 框架,它将 Java 对象映射到 SQLite 数据库,以简化数据持久化操作。GreenDao 的主要优点包括高性能、低内存占用、易于使用以及对数据库加密的支持。 以下是基于源码的 GreenDao 实现原…

AI 应用还没有大量出现,缺什么?缺聊天机器人编程语言 | Chatopera

只有帮助人发挥创意的才是大市场 现在是需要大量的 AI 应用了。如何产生大量的 AI 应用呢?当年乔布斯说,他看到了个人电脑的两个趋势,一个是图形化用户界面,一个是面向对象编程语言。今天,AI 应用也是新的【图形用户界…

【QT】label中添加QImage图片并旋转(水平翻转、垂直翻转、顺时针旋转、逆时针旋转)

目录 0.简介 1.详细代码及解释 1)原label显示在界面上 2)水平翻转 3)垂直翻转 4)顺时针旋转45度 5)逆时针旋转 0.简介 环境:windows11 QtCreator 背景:demo,父类为QWidget&a…

Cisco 路由重发布 —— 实现路由信息在不同路由选择域间的传递

一、技术背景 在实际的组网中,可能会遇到这样一个场景:在一个网络中同时存在两种或者两种以上的路由协议。例如客户的网络原先是纯 Cisco 的设备,使用 EIGRP 协议将网络的路由打通。但是后来网络扩容,增加了一批华为的设备&#…

应用层——HTTP

像我们电脑和手机使用的应用软件就是在应用层写的,当我们的数据需要传输的时候换将数据传递到传输层。 应用层专门给用户提供应用功能,比如HTTP,FTP… 我们程序员写的一个个解决我们实际的问题都在应用层,我们今天来聊一聊HTTP。 协议 协议…

【接口自动化_12课_基于Flask搭建MockServer】

知识非核心点,面试题较少。框架搭建的过程中的细节才是面试要点 第三方接口,不方便进行测试, 自己要一个接口去进行模拟。去作为我们项目访问模拟接口。自己写一个接口,需要怎样写 一、flask:轻量级的web应用的框架 安装命令 …

旧系统的会员信息如何导入新系统?

千呼新零售2.0系统是零售行业连锁店一体化收银系统,包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体,线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

ES6 中的 generator 函数究竟是什么

ES6 中的 generator 函数究竟是什么 我们在学习 js 的时候应该都知道一个概念:一旦函数开始执行,它将运行直至完成,没有其他的代码可以在运行期间干扰它。 但是在 ES6 中引入了一种新型的函数,它不按照“运行至完成”的规则。这…