mar*_*g11 1 arrays algorithm recursion multidimensional-array
假设我有以下内容:
{ 0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,X,X,X,0,
0,0,0,X,X,X,X,0,X,0,
0,0,0,X,0,A,0,0,X,0,
0,0,0,X,0,0,X,X,X,0,
0,0,0,X,X,X,X,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 }
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,显然A在内部被所有X包围(对角线不计数).那么我可以检测数组中的一个点是否被X包围,它当然是关闭的吗?任何递归算法?我想到了以下伪代码:
bool IsSurroundedByX( Vector2 A )
{
if A is an extrem from the matrix ( column is 0 or N-1 || row is 0 or M -1 ) and not an X return false
if A is an X return true
return IsSurroundedByX( A + left ) &&
IsSurroundedByX( A + right ) &&
IsSurroundedByX( A + bottom ) &&
IsSurroundedByX( A + top ) &&
}
Run Code Online (Sandbox Code Playgroud)
但我认为这不会起作用.