Skip to content

Commit 824804d

Browse files
authored
Create 1020. Number of Enclaves 7 Apr (#141)
2 parents 0ab0a1b + cef70a7 commit 824804d

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

1020. Number of Enclaves 7 Apr

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

0 commit comments

Comments
 (0)