-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathNumberOfIslands.java
More file actions
37 lines (35 loc) · 999 Bytes
/
Copy pathNumberOfIslands.java
File metadata and controls
37 lines (35 loc) · 999 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package matrix;
// Source : https://leetcode.com/problems/number-of-islands/
// Id : 200
// Author : Fanlu Hai | https://github.com/Fanlu91/FanluLeetcode
// Date : 2021/2/20
// Topic : dfs
// Level : Medium
// Other :
// Tips :
// Links : Must
// Result : 91.40% 15.30%
public class NumberOfIslands {
// 91.40% 2ms 15.30%
public int numIslands(char[][] grid) {
int count = 0;
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[0].length; j++) {
if (grid[i][j] == '1') {
dfs(grid, i, j);
count++;
}
}
}
return count;
}
private void dfs(char[][] grid, int i, int j) {
if (i < 0 || j < 0 || i >= grid.length || j >= grid[0].length || grid[i][j] == '0')
return;
grid[i][j] = '0';
dfs(grid, i + 1, j);
dfs(grid, i, j + 1);
dfs(grid, i - 1, j);
dfs(grid, i, j - 1);
}
}