给定NxN网格0s,1s和2s,找出1s还是2s被包围。被包围意味着1s被2s包围或者2s被1s包围。
010
121
010
表示2个环绕一个。 有一些复杂的:
10110
21212
11111
2由1围绕,因为(2,1)由1围绕而且(0,1)不围绕1,因为(0,1)左边没有1。
如何确定哪个包含哪个以及如何解决此问题。
答案 0 :(得分:0)
假设表a
的大小为m * n。
你应该在表格周围添加一个边界(如下图所示)
你可以这样做:
(i,j)
是否被包围? (i,j)
条件(a[u][v] == a[i][j] || a[u][v] == 0)
的BFS - >将(u,v)
添加到堆栈a[0][x]
,a[x][0]
,a[m+1][x]
,a[x][n+1]
) - >它没有被包围