2026/4/17 22:54:54
网站建设
项目流程
黄页网站怎么查,公司公关公司,安卓免费翻外墙的app,网站建设维护是做什么的本文参考代码随想录 树可以看成是一个连通且 无环 的 无向 图。
给定往一棵 n 个节点 (节点值 1#xff5e;n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间#xff0c;且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges edges[i] [ai, bi] 表示图中在 ai 和 bi 之间存在一条边。请找出一条可以删去的边删除后可使得剩余部分是一个有着 n 个节点的树。如果有多个答案则返回数组 edges 中最后出现的边思路并查集那么我们就可以从前向后遍历每一条边因为优先让前面的边连上边的两个节点如果不在同一个集合就加入集合即同一个根节点。如果边的两个节点已经出现在同一个集合里说明着边的两个节点已经连在一起了再加入这条边一定就出现环了classSolution:definit(self,n):self.fathers[iforiinrange(n1)]deffind(self,v):ifself.fathers[v]v:returnvreturnself.find(self.fathers[v])defisSame(self,u,v):returnself.find(u)self.find(v)defjoin(self,u,v):# u-vuself.find(u)vself.find(v)ifuv:returnself.fathers[u]vdeffindRedundantConnection(self,edges:List[List[int]])-List[int]:self.init(len(edges))foriinedges:u,vi[0],i[1]ifself.isSame(u,v):returni self.join(u,v)