这个问题与Leetcode's Critical Connections in a Network非常相似。给定一个无向图,我们想找到所有桥梁。如果将无向连接的图中的边移除会断开图的连接,则该边为 bridge 。
变体
我想最大化,而不是查找所有桥,以消除要连接的边数,以便图形保持连接状态。
示例1
Input: n = 5, edges = [[1, 2], [1, 3], [3, 4], [1, 4], [4, 5]]
Output: 1
首先,我可以删除[3,4]
,[1,3]
或[1,4]
。接下来,在除去这3条边中的任意一条之后,其余边都是桥。因此,要使图形保持连接状态,要删除的最大边数为1。
示例2
Input: n = 6, edges = [[1, 2], [1, 3], [2, 3], [2, 4], [2, 5], [4, 6], [5, 6]]
Output: 2
答案 0 :(得分:3)
这很容易,如果我们在连接的图中具有E
个边和N
个节点,则可以删除E-N+1
个边,从而使图保持连接状态。
如何执行此操作?:
只需执行DFS / BFS即可找到该图的任何生成树,因为生成树已连接,所以我们可以删除所有其他边。