这是一个例子(计算黑色):
输入:
输出:
5 4 // 5 groups (4 squares each)
1 1 // 1 group containing 1 square
对于现在,我想不出什么比迭代的痛苦更好。是否有可能以递归的方式获得这些组? 感谢
答案 0 :(得分:2)
答案 1 :(得分:0)
一开始,每个单元格都是“未访问的”。
我会遍历细胞,直到你遇到一个“未访问的”黑色细胞。你达到那个点的每个白细胞
一旦击中黑色单元格,如果可能,将其“展开”到所有方向(类似于“floodfilling”)。您可以尽可能地扩展并将所有访问的单元格标记为“已访问”。在你这样做之后,你会计算出你感染了多少黑细胞,你知道这个组有多大。检测到该组后,您将继续查看下一个“未访问的”黑色单元格。
答案 2 :(得分:0)
您可以使用具有4连接性的connected component labeling算法