返回首页

并查集典型题:冗余连接与岛屿合并

一、面试常考点

1. 冗余连接

union(u, v) 返回 false,说明这条边造成环。

2. 动态岛屿

每次把水域变陆地并与周围陆地合并,维护岛屿数量。

二、细节介绍

1. 环检测

适合无向图加边判环。

2. 岛屿合并

二维坐标可映射成一维 id。

三、示例代码(冗余连接)

function findRedundantConnection(edges) {
  const n = edges.length
  const dsu = new DSU(n + 1)

  for (const [u, v] of edges) {
    if (!dsu.union(u, v)) return [u, v]
  }

  return []
}

四、常用应用场景

1. 网络拓扑检测

发现多余链路或异常闭环。

2. 地图连通域维护

实时合并区域。