Skip to content

Commit 370ad77

Browse files
authored
Create 1020.cpp
1 parent d30bd0c commit 370ad77

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

1020/1020.cpp

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
class Solution {
2+
public:
3+
int dx[4] = {0, 0, 1, -1};
4+
int dy[4] = {1, -1, 0, 0};
5+
6+
bool valid(int r, int c, int n, int m){
7+
return (r >= 0 and r < n and c >= 0 and c < m);
8+
}
9+
10+
void dfs(vector<vector<int>>& board, int x, int y, int n, int m){
11+
board[x][y] = 2;
12+
for(int i = 0; i < 4; i++){
13+
int r = x + dx[i];
14+
int c = y + dy[i];
15+
16+
if(valid(r,c,n,m) and board[r][c] == 1)
17+
dfs(board, r, c, n, m);
18+
}
19+
}
20+
int numEnclaves(vector<vector<int>>& board) {
21+
int n = board.size();
22+
if(n == 0)
23+
return 0;
24+
int m = board[0].size();
25+
26+
for(int i = 0; i < n; i++){
27+
for(int j = 0; j < m; j++){
28+
if(board[i][j] == 1)
29+
if(i == 0 or i == n-1 or j == 0 or j == m-1){
30+
dfs(board, i, j, n, m);
31+
}
32+
}
33+
}
34+
35+
int cnt = 0;
36+
for(int i = 0; i < n; i++){
37+
for(int j = 0; j < m; j++){
38+
if(board[i][j] == 1)
39+
cnt++;
40+
}
41+
}
42+
43+
return cnt;
44+
}
45+
};

0 commit comments

Comments
 (0)