【发布时间】:2017-01-19 16:30:36
【问题描述】:
假设我们有一个 0 的空网格:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
你可以在上面画形状。 1 表示填充单元格。
1 1 1 1 0 0 0 0
1 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0
1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0
0 1 1 0 0 1 1 1
1 0 0 1 0 1 0 0
0 1 1 0 0 1 0 0
如果四向填充算法不会泄漏并填充形状之外的任何单元格,则该形状被认为是封闭的。一个形状不能使用网格的边界作为它的边之一。所以如果我们用 2s 填充这个网格中的所有闭合形状,我们将有:
1 1 1 1 0 0 0 0
1 2 2 1 0 0 0 0
1 2 2 1 0 0 0 0
1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0
0 1 1 0 0 1 1 1
1 2 2 1 0 1 0 0
0 1 1 0 0 1 0 0
实现洪水填充算法很容易,但我想不出一种方法来(以编程方式)填充网格中所有封闭的任意形状。我可以为此使用任何类型的算法或搜索吗?
【问题讨论】:
标签: algorithm search grid shape flood-fill