golang刷leetcode技巧之如何解决节点间通路问题
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关golang刷leetcode技巧之如何解决节点间通路问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。节点间通路。给定有向图,设计一个
千家信息网最后更新 2025年12月03日golang刷leetcode技巧之如何解决节点间通路问题
这篇文章将为大家详细讲解有关golang刷leetcode技巧之如何解决节点间通路问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
节点间通路。给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。
示例1:
输入:n = 3, graph = [[0, 1], [0, 2], [1, 2], [1, 2]], start = 0, target = 2
输出:true
示例2:
输入:n = 5, graph = [[0, 1], [0, 2], [0, 4], [0, 4], [0, 1], [1, 3], [1, 4], [1, 3], [2, 3], [3, 4]], start = 0, target = 4
输出 true
提示:
节点数量n在[0, 1e5]范围内。
节点编号大于等于 0 小于 n。
图中可能存在自环和平行边。
解题思路
1,图相关的问题,一般广度优先遍历或者深度优先遍历即可解决
2,广度优先遍历借助对接,深度优先遍历借助栈,或者递归
3,针对寻找联通路径,广度优先遍历比较简单
4,为了表示方便,可以先把图转成邻接矩阵
代码实现
func findWhetherExistsPath(n int, graph [][]int, start int, target int) bool {adj:=make([][]int,n)for i:=0;iadj[graph[i][0]]=append(adj[graph[i][0]],graph[i][1])}var q queueq.push(start)// fmt.Println(adj,q.isEmpty())for !q.isEmpty(){y:=q.pop()for _,x:=range adj[y]{//fmt.Println(q,x,y)if x==target{return true}q.push(x)}}return false}type queue struct{data []int}func (q *queue)push(x int){q.data=append(q.data,x)}func(q* queue)pop()int{x:=q.data[0]q.data=q.data[1:]return x}func(q *queue)isEmpty()bool{return len(q.data)==0}
关于"golang刷leetcode技巧之如何解决节点间通路问题"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
节点
问题
广度
篇文章
技巧
更多
深度
示例
路径
输入
输出
不错
实用
两个
之间
代码
内容
思路
数量
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
uci数据库 自然数据集
软件开发生产性指标
数据库如何快速计算公式
数据库管理员 前景
株洲财政局网络安全
泰坦陨落2橘子服务器
辽宁东港互联网科技有限公司
南岸区全过程软件开发流程报价表
天津监控安防软件开发
php 循环写入数据库
网络安全整改通知模版
简述计算机网络安全
基于混合现实的交互软件开发
软件开发中启动画面的制作
邯郸软件开发销售公司
长春宽城区网络安全
漳平软件开发外包公司哪家好
科学技术和大数据库
春节期间网络安全保障通知
工信部网络安全漏洞备案
洛雪音乐助手同步服务器
数据库重新分配原则
快递柜系统数据库
pg数据库设置用户密码
车联网 网络安全公司
php往数据库插入多条数据
网络安全设备频繁死机
网络安全周活动目的
中铁四局合肥软件开发
mac 快速搭建代理服务器