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

代码随想录算法训练营第五十六天 | 108.冗余连接 109.冗余连接II

108.冗余连接

题目链接:108. 冗余的边

文章讲解:代码随想录

思路: 题目说是无向图,返回一条可以删去的边,使得结果图是一个有着N个节点的树,如果有多个答案,则返回二维数组中最后出现的边。

从前向后遍历每一条边(因为优先让前面的边连上),边的两个节点如果不在同一个集合,就加入集合(即:同一个根节点),如果边的两个节点已经出现在同一个集合里,说明着边的两个节点已经连在一起了,再加入这条边一定就出现环了。

主函数判断一下边的两个节点在不在同一个集合就可以了

109.冗余连接II

题目链接:109. 冗余的边II

文章讲解:代码随想录

思路: 

有一个有向图,是由一颗有向树 + 一条有向边组成的(所以此时这个图就不能称之为有向树),现在让找到那条边把这条边删了,让这个图恢复为有向树。

有向树的性质,如果是有向树的话,只有根节点入度为0,其他节点入度都为1(因为该树除了根节点之外的每一个节点都有且只有一个父节点,而根节点没有父节点)。

情况一:如果我们找到入度为2的点,那么删一条指向该节点的边就行了

情况二,只能删特定的一条边

入度为2的点需要判断删除哪一条边,删除后本图能成为有向树。如果是删哪个都可以,优先删顺序靠后的边

情况三: 如果没有入度为2的点,说明图中有环了(注意是有向环),对于情况三,删掉构成环的边就可以了。

​​​​​​​

http://www.xdnf.cn/news/1226.html

相关文章:

  • transformer 子层连接结构
  • 每日算法-哈希表(两数之和、)
  • STM32串口重定向:MDK与GCC重定向需重写的不同函数
  • UE5 鼠标点击一个物体触发Onclick事件
  • 死信队列完整处理方案
  • AiEditor v1.3.8 发布
  • 2023蓝帽杯初赛内存取证-3
  • vmstat指令介绍
  • 自动化测试实现容器化部署
  • C#内存管理深度解析:值类型与引用类型全解析
  • Linux命令-pidstat
  • Python简介与入门
  • 使用若依二次开发商城系统-4:商品属性
  • 无价值的劳动与暴力威胁是否会导致人性逆转?-来自DeepSeek
  • WP快主题
  • 激光SLAM算法综述
  • 滚动的足球-第16届蓝桥第4次STEMA测评Scratch真题第3题
  • Android Studio调试中的坑二
  • C++与C
  • 1.微服务拆分与通信模式
  • NLP高频面试题(五十一)——LSTM详解
  • 【机器学习】决策树算法中的 “黄金指标”:基尼系数深度剖析
  • MCP Server架构设计详解:一文掌握框架核心
  • PowerBi中REMOVEFILTERS怎么使用?
  • 虚无隧穿产生宇宙(true nothing tunneling) 是谁提出的
  • 【Spring Boot】MyBatis多表查询的操作:注解和XML实现SQL语句
  • 权限管理降维打击:AI自动生成分布式系统鉴权代码(含JWT刷新策略)
  • 如何通过证书认证安全登录堡垒机、防火墙和VPN?安当KSP密钥管理系统助力企业实现零信任身份验证
  • 【中级软件设计师】程序设计语言基础成分
  • 3.1.2 materialDesign:Card 的使用介绍