Skip to content

Commit 8ba5e1e

Browse files
committed
Updated C++ solution
1 parent 4883f24 commit 8ba5e1e

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

C++/soln-grid-problems/DFS-number-of-islands.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,29 @@
1010
class Solution {
1111
public:
1212
int numIslands(vector<vector<char>>& grid) {
13-
int islandCount=0;
14-
13+
int numberIslands=0;
1514
for(int i=0;i<grid.size();i++){
1615
for(int j=0;j<grid[0].size();j++){
1716
if(grid[i][j]=='1'){
18-
islandCount+=dfs(grid,i,j);
17+
grid[i][j]='0';
18+
numberIslands++;
19+
dfs(grid,i,j);
1920
}
2021
}
2122
}
22-
return islandCount;
23+
return numberIslands;
2324
}
2425

25-
vector<vector<int>> dirs={{1,0},{0,1},{-1,0},{0,-1}};
26-
int dfs(vector<vector<char>>& grid,int i, int j){
26+
int dirs[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
27+
28+
void dfs(vector<vector<char>>& grid, int i, int j){
2729
for(auto dir:dirs){
2830
int dir_x=i+dir[0];
2931
int dir_y=j+dir[1];
30-
31-
if(dir_x>=0 && dir_y>=0 && dir_x<grid.size() && dir_y<grid[0].size() && grid[dir_x][dir_y]!='0'){
32+
if(dir_x>=0 && dir_x<grid.size() && dir_y>=0 && dir_y<grid[i].size() && grid[dir_x][dir_y]!='0'){
3233
grid[dir_x][dir_y]='0';
33-
dfs(grid,dir_x, dir_y);
34+
dfs(grid,dir_x,dir_y);
3435
}
35-
3636
}
37-
return 1;
3837
}
3938
};

0 commit comments

Comments
 (0)