以下数组中有多少个连接集?
1 0 0 1
0 0 1 0
0 0 1 0
1 0 0 1
“连接集合”可以被定义为在其上提及1并且在该集合中具有至少一个其他小区的小区组,其中它们共享邻居关系。其中包含1并且没有周围邻居的小区可以被认为是其中包含一个小区的集合。邻居可以被定义为在8个可能方向(即N,W,E,S,NE,NW,SE,SW方向)上与给定小区相邻的所有小区。一个小区不是它自己的邻居。
实际上我坚持这个并且无法理解这个问题中连接集的定义是什么意思
答案 0 :(得分:2)
这是突出显示集合的图像:
规则适用如下(据我所知):
第三点我不太确定,因为OP说''Connected set'可以定义为一组,其中有1个提到并且至少一个其他单元< / strong>在那个集合中,“然后也说”其中包含1的单元格和没有周围的邻居其中包含1个单元格可以被视为一个包含一个单元格的集合“,所以它非常不明确的。
如果是单个单元格未设置的情况,则计数分别为1和5。
答案 1 :(得分:0)
解决问题的一种方法是使用泛洪填充算法
现在检查1并将其设为0,现在检查所有方向,如果它们包含1,那么也将它们设为0(除了在所有方向上进行递归调用之外)
完成整个数组检查后,我们面对1的次数是答案
例如,让我们来看看
1 0 0 1
1 0 0 1
1 0 0 1
1 0 1 0
现在00的元素是1现在使它为0现在检查所有方向现在我们在10位置有1因此使它为零并再次检查我们将得到20和30位置因此计数为1
现在移动到03使其为0并且现在检查为1因此包含1的单元格为13使其为零并且现在移动到23并且最终为32并且增加计数器因此它是2
现在检查每个单元格,因为没有其他单元格包含1因此总连接集合为2