我想知道我应该在这里应用哪种算法。DFS会做吗?
给定一个二维矩阵。找到该矩阵中连接集的总数。
连通集可以定义为一组小区,上面提到了 1 个小区,并且在该集中至少有一个其他小区与它们共享邻居关系。一个包含 1 的单元格并且没有包含 1 的周围邻居可以被认为是一个包含一个单元格的集合。邻居可以定义为在 8 个可能方向(即 N、W、E、S、NE、NW、SE、SW 方向)上与给定小区相邻的所有小区。一个细胞不是它自己的邻居。
例如:
1 0 0 1
0 0 1 0
0 0 1 0
1 0 0 1
连接组数为 3
0 0 1 0 0 1 0 0
1 0 0 0 0 0 0 1
0 0 1 0 0 1 0 1
0 1 0 0 0 1 0 0
1 0 0 0 0 0 0 0
0 0 1 1 0 1 1 0
1 0 1 1 0 1 1 0
0 0 0 0 0 0 0 0
连接集数为 9。