Skip to content

Commit 3604a60

Browse files
committed
add solution of number-of-islands
1 parent 195d853 commit 3604a60

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

number-of-islands/jinhyungrhee.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class Solution {
2+
3+
public int numIslands(char[][] grid) {
4+
5+
int[][] dir = {{-1, 0}, {1, 0}, {0, 1}, {0, -1}};
6+
boolean[][] visited = new boolean[grid.length][grid[0].length];
7+
8+
int count = 0;
9+
for (int i = 0; i < grid.length; i++) {
10+
for (int j = 0; j < grid[0].length; j++) {
11+
if ('1' == grid[i][j] && !visited[i][j]) {
12+
dfs(grid, visited, dir , i, j);
13+
count++;
14+
}
15+
}
16+
}
17+
return count;
18+
}
19+
20+
public void dfs(char[][] grid, boolean[][] visited, int[][] dir, int x, int y) {
21+
22+
if (x >= 0 && x < grid.length && y >= 0 && y < grid[0].length
23+
&& !visited[x][y] && '1' == grid[x][y]) {
24+
25+
visited[x][y] = true;
26+
for (int i = 0; i < 4; i++) {
27+
int dx = x + dir[i][0];
28+
int dy = y + dir[i][1];
29+
dfs(grid, visited, dir ,dx, dy);
30+
}
31+
}
32+
}
33+
}

0 commit comments

Comments
 (0)