如何检查二维数组中的每个元素是否连接在一起
How to check if every element in a 2D Array are connected together
问题在标题里。我有一个二维数组:
array = [
[0, 0, 1, 0, 1],
[0, 0, 1, 0, 1],
[1, 1, 1, 1, 1],
[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0]
]
如何检查此示例中的每个元素“1”是否都作为相邻元素横向或横向连接在一起。在这个例子中,函数应该 return TRUE 因为所有的 1 都连接在一起。对比:
array = [
[0, 0, 0, 1, 1],
[0, 0, 0, 1, 1],
[0, 0, 0, 0, 0],
[1, 1, 0, 0, 0],
[1, 1, 0, 0, 0]
]
这应该 return FALSE,因为它们是 1 之间的分界线,并不是所有的都是邻居。
我最初的想法是遍历数组并检查是否有任何相邻项为 1。然而,这是行不通的,因为两个元素可以彼此相邻但远离组的其余部分。非常感谢任何帮助。
这些探索算法可帮助您发现与起始节点相连的所有节点。
“技巧”是将您的矩阵视为一个图形,其中:
V = { (i,j) | a[i][j] == 1} (informally, all locations where there is 1 in the matrix
E = { ((i1, j1), (i2, j2)) | (i1, j1), (i2, j2) are adjacent }
然后,找到一个a[i][j] == 1
的地方,并从那里开始一个BFS或DFS来发现所有可达的节点。
完成后,再次迭代矩阵,看看是否每个 a[i][j] == 1
元素都被发现了。
祝你好运!
此问题的正确答案是计算所有为 1 的元素,然后找到任何为“1”的元素,然后使用计算 1 的数量的填充算法。如果两个值相等则答案为真,否则为假。
问题在标题里。我有一个二维数组:
array = [
[0, 0, 1, 0, 1],
[0, 0, 1, 0, 1],
[1, 1, 1, 1, 1],
[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0]
]
如何检查此示例中的每个元素“1”是否都作为相邻元素横向或横向连接在一起。在这个例子中,函数应该 return TRUE 因为所有的 1 都连接在一起。对比:
array = [
[0, 0, 0, 1, 1],
[0, 0, 0, 1, 1],
[0, 0, 0, 0, 0],
[1, 1, 0, 0, 0],
[1, 1, 0, 0, 0]
]
这应该 return FALSE,因为它们是 1 之间的分界线,并不是所有的都是邻居。
我最初的想法是遍历数组并检查是否有任何相邻项为 1。然而,这是行不通的,因为两个元素可以彼此相邻但远离组的其余部分。非常感谢任何帮助。
这些探索算法可帮助您发现与起始节点相连的所有节点。
“技巧”是将您的矩阵视为一个图形,其中:
V = { (i,j) | a[i][j] == 1} (informally, all locations where there is 1 in the matrix
E = { ((i1, j1), (i2, j2)) | (i1, j1), (i2, j2) are adjacent }
然后,找到一个a[i][j] == 1
的地方,并从那里开始一个BFS或DFS来发现所有可达的节点。
完成后,再次迭代矩阵,看看是否每个 a[i][j] == 1
元素都被发现了。
祝你好运!
此问题的正确答案是计算所有为 1 的元素,然后找到任何为“1”的元素,然后使用计算 1 的数量的填充算法。如果两个值相等则答案为真,否则为假。