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
38
|
import java.lang.*;
import java.util.*;
class NumberOfIslands {
public static void setZero(int y, int x, int[][] grid) {
if (y < 0 || y > grid.length - 1 || x < 0 || x > grid[0].length - 1 || grid[y][x] == 0)
return;
grid[y][x] = 0;
System.out.println("y: " + y + " x: " + x);
setZero(y, x + 1, grid);
setZero(y + 1, x, grid);
setZero(y, x - 1, grid);
setZero(y - 1, x, grid);
}
public static int numIslands(int[][] grid) {
int num = 0;
for (int y = 0; y < grid.length; y++) {
for (int x = 0; x < grid[y].length; x++) {
if (grid[y][x] == 1) {
num++;
setZero(y, x, grid);
}
}
}
return num;
}
public static void main(String[] args) {
int[][] grid = {
{1,1,1,1,0},
{1,1,0,1,0},
{1,1,0,0,0},
{0,0,0,1,1}
};
System.out.println(numIslands(grid));
}
}
|