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

【代码随想录|第十一章 图论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()链表来创建
其他看起来还比较简单,就是我还没有自己打一下

三、广搜理论基础

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

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

总结

输入输出

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于深度学习的水果识别系统
  • Django获取request请求中的参数
  • S参数入门
  • Jenkins教程-20-常用插件-Parameterized Trigger
  • 口袋算法的示例
  • 【HarmonyOS学习】定位相关知识(Locationkit)
  • 不坑盒子有什么用?
  • 互动广告新体验:Flat Ads 助力全球开发者高效变现
  • Go网络编程-HTTP程序设计_2
  • 新时代多目标优化【数学建模】领域的极致探索——数学规划模型
  • ​数据结构之初始二叉树(3)
  • C语言 ——— 打印水仙花数
  • ubuntu22.04安装SecureCRT8.7.3,完成顺利使用
  • 【面试题】数据结构:堆排序的排序思想?
  • 辅助类BigDecima/BigInteger
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • ECMAScript入门(七)--Module语法
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • leetcode98. Validate Binary Search Tree
  • nfs客户端进程变D,延伸linux的lock
  • Nodejs和JavaWeb协助开发
  • underscore源码剖析之整体架构
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • webpack入门学习手记(二)
  • Web设计流程优化:网页效果图设计新思路
  • Yeoman_Bower_Grunt
  • 初识 beanstalkd
  • 类orAPI - 收藏集 - 掘金
  • 浅谈web中前端模板引擎的使用
  • 提醒我喝水chrome插件开发指南
  • 跳前端坑前,先看看这个!!
  • 我感觉这是史上最牛的防sql注入方法类
  • 新书推荐|Windows黑客编程技术详解
  • Python 之网络式编程
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 整理一些计算机基础知识!
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (4)STL算法之比较
  • (7)STL算法之交换赋值
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (四)图像的%2线性拉伸
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)visual stdio 书签功能介绍
  • (转)原始图像数据和PDF中的图像数据
  • .naturalWidth 和naturalHeight属性,
  • .net core 的缓存方案
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions