aboutsummaryrefslogtreecommitdiff
path: root/NumberOfIslands.java
blob: 422b80edf8ecf0e5a2a3fb575eaf9314de819c49 (plain)
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));
	}
}