1 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
2 #define sz size()
3 int dx[] = {
0,
0,
1,-
1};
4 int dy[] = {
1,-
1,
0,
0};
5 class Solution
6 {
7 public:
8 void floodfill(vector<vector<
int>>& A,
int i,
int j)
9 {
10 A[i][j] =
0;
11 _for(k,
0,
4)
12 {
13 int nx = i+
dx[k];
14 int ny = j+
dy[k];
15 if(nx>=
0&&ny>=
0&&nx<A.size()&&ny<A[nx].size() && A[nx][ny]==
1)
16 floodfill(A,nx,ny);
17 }
18 }
19 int numEnclaves(vector<vector<
int>>&
A)
20 {
21 _for(i,
0,A.sz)
22 _for(j,
0,A[i].sz)
23 if(A[i][j]==
1 && (i==
0||i==A.size()-
1||j==
0||j==A[i].size()-
1))
24 floodfill(A,i,j);
25
26 int res =
0;
27 _for(i,
0,A.sz)
28 _for(j,
0,A[i].sz)
29 if(A[i][j]==
1)
30 res ++
;
31 return res;
32 }
33 };
flood fill
转载于:https://www.cnblogs.com/Asurudo/p/10630810.html
相关资源:垃圾分类数据集及代码