Skip to content

Commit 5eafefd

Browse files
author
Gaurav Sood
committed
(LEETCODE)Number-of-Islands
1 parent 5b8520c commit 5eafefd

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

Graph/(LEETCODE)Number-of-Islands.cpp

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
class Solution {
2+
public:
3+
void dfs(vector<vector<char>>& grid,vector<vector<bool>> &visited,int r, int c){
4+
static int dirX[] = { -1, 0 , 0 , 1 };
5+
static int dirY[] = { 0 , 1 , -1, 0 };
6+
visited[r][c] = true;
7+
for(int i = 0 ; i < 4 ; ++i){
8+
int nextr = r + dirX[i];
9+
int nextc = c + dirY[i];
10+
if(nextr >= 0 && nextr < grid.size() && nextc >= 0 && nextc < grid[0].size() && grid[nextr][nextc] == '1' && !visited[nextr][nextc]){
11+
dfs(grid,visited,nextr,nextc);
12+
}
13+
}
14+
}
15+
16+
int numIslands(vector<vector<char>>& grid) {
17+
int m = grid.size();
18+
if(m == 0) return 0;
19+
int n = grid[0].size();
20+
int cnt = 0;
21+
vector<vector<bool> > visited(m, vector<bool>(n,false));
22+
for(int i = 0 ; i < m ; ++i){
23+
for(int j = 0; j < n; ++j){
24+
if(grid[i][j] == '1' && !visited[i][j]){
25+
dfs(grid,visited,i,j);
26+
++cnt;
27+
}
28+
}
29+
}
30+
return cnt;
31+
}
32+
};

0 commit comments

Comments
 (0)