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)); } }