0

0

冗余连接

霞舞

霞舞

发布时间:2025-01-30 08:26:35

|

443人浏览过

|

来源于dev.to

转载

684。冗余连接

难度:中等

>>主题:深度优先搜索,广度优先搜索,联合查找,图形

在这个问题中,一棵树是连接且没有循环的无向图>您获得了一个图形,该图是从1到n标记的n个节点开始的树,并增加了一个边缘。添加的边缘具有从1到n选择的两个不同的

的顶点,并且不是已经存在的边缘。该图表示为长度为n的数组边缘,其中边缘[i] = [ai ,bi]表明节点ai 返回可以删除的边缘,以便结果图是n节点的树。如果有多个答案,请返回在输入

>

>示例1:

>输入: edges = [[1,2],[1,3],[2,3]]

>输出:reduntant1-1-graph [2,3]

  • >>示例2:
>输入:

edges = [[1,2],[2,3],[3,4],[1,4],[1,5]] >输出:

[1,4]

reduntant1-2-graph

    >约束:
  • >
  • n == edge.length
  • 3
  • edges [i] .length == 2

1 i i

Brancher AI
Brancher AI

无代码连接AI模型,快速创建AI应用程序

下载
    i
  • a
  • i
  • != b
  • i
  • > 没有重复的边缘。给定的图是连接的。
  • 解决方案:
  • 冗余连接
  • 问题要求我们确定图形中的边缘,可以将图形转换为有效的树。树是连接和无环的无向图。给我们一个图形,该图是从树开始的,但通过添加一个额外的边缘进行了修改。我们的目标是找到并返回这个额外的优势。
  • >
  • 关键点

该图是未取向

删除冗余边缘后所得的图形必须没有周期。 答案应返回输入中出现的

最后一个

的边缘,如果有多个有效的解决方案。

由于单个额外的边缘,该图最多可以具有一个周期。
  1. 方法 该方法涉及使用>深度优先搜索(dfs)来检测周期:
  2. >邻接列表表示
  3. >使用邻接列表来表示图形。该结构适合有效地执行df。

通过dfs

循环检测:> 在将边缘添加到图表之前,请使用dfs检查边缘两个顶点之间是否已经有一个路径。如果有的话,添加此边缘将形成一个周期。

  1. 返回边缘

    • 如果检测到一个周期,请返回当前边缘作为冗余连接。
  2. 计划

    解析输入边缘。

      维护一个邻接列表以动态跟踪图形的连接。
    • 对于每个边缘:
    使用递归dfs函数检查两个顶点之间的路径是否存在。
  3. 如果存在路径,请返回边缘作为冗余连接。

    否则,将边缘添加到邻接列表中。

    如果找不到冗余边缘,则返回空结果(尽管这不会按照问题的限制发生)。
    • >让我们在php中实现此解决方案: 684。冗余连接

解释:

  1. dfs实现
    • 从一个节点开始,然后递归访问其邻居。
    • 使用访问的数组避免重新访问节点。
    • 如果在遍历期间达到目标节点,则存在一条路径。
  2. edge addad

如果在边缘的顶点之间不存在路径,请将边缘添加到邻接列表中,然后继续进行下一个边缘。

冗余边缘

  1. 如果已经存在路径,请在形成周期时返回当前边缘。

      示例演练
    • 示例1:
    • >输入
    • :edges = [[1,2],[1,3],[2,3]]
  2. 步骤
  3. >将邻接列表初始化为[]。

      处理边缘:
    • 添加[1,2]→图:{1:[2],2:[1]}
  4. 添加[1,3]→图:{1:[2,3],2:[1],3:[1]}
  5. 检查[2,3]:dfs找到路径→返回[2,3]。

    • >输出
    • :[2,3]
    示例2:

> input

:edges = [[1,2],[2,3],[3,4],[1,4],[1,5]] 步骤

>将邻接列表初始化为[]。

处理边缘:

添加[1,2]→图:{1:[2],2:[1]}
  1. 添加[2,3]→图:{1:[2],2:[1,3],3:[2]}
  2. 添加[3,4]→图:{1:[2],2:[1,3],3:[2,4],4:[3]}
    • 检查[1,4]:dfs找到路径→返回[1,4]。
    • 输出
    :[1,4] 时间复杂性

dfs traversal

对于每个边缘,我们执行一个dfs来检查连接。> 最差的情况:

o(v e)

,其中

v
  1. 是顶点的数量,
    • e
    • 是边的数量。
    总复杂度

由于我们为每个边缘执行dfs,因此总体复杂性为

o(e×(v e))

  1. 空间复杂度

    • >邻接列表:
    • o(v e) 访问阵列:o(v) 总计:
    • o(v e)
  2. 输出示例
    • 示例1: > input :[[1,2],[1,3],[2,3]]
    • >
    >
  3. >输出
  4. :[2,3]

    示例2:

      > input
    • :[[[1,2],[2,3],[3,4],[1,4],[1,5]] >输出:[1,4] 可以使用基于dfs的方法来有效解决该问题以检测周期。此方法动态构建图形并在每个步骤中检查冗余边缘。该解决方案通过遵守问题约束并输出形成周期并发生在输入中的边缘的边缘来确保正确性。>
    • 联系链接 如果您发现此系列有帮助,请考虑在github上给出 reposority cository >在您喜欢的社交网络上分享帖子。您的支持对我来说意义重大!
    • >
    • 如果您想要这样的更多有用的内容,请随时关注我:> linkedin
github

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

1989

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1307

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1212

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

948

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1400

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1229

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1439

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1303

2023.11.13

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.3万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号