如何计算二维数组中相同单元的组?

Pat*_*ryk 8 arrays algorithm

这是一个例子(计算黑色):

输入:

在此输入图像描述

输出:

5 4 // 5 groups (4 squares each)
1 1 // 1 group containing 1 square
Run Code Online (Sandbox Code Playgroud)

对于现在,我想不出什么比迭代的痛苦更好.是否有可能以递归的方式获得这些组?谢谢

ami*_*mit 2

将所有黑色方块设置为节点。黑色方块之间的连接(如果方块彼此相邻)将是一条边。

这给你一个图表

图中的 DFS将为您提供所有组。请注意,DFS 本​​质上是递归的。