aboutsummaryrefslogtreecommitdiff
path: root/NumberOfIslands.java
diff options
context:
space:
mode:
Diffstat (limited to 'NumberOfIslands.java')
-rw-r--r--NumberOfIslands.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/NumberOfIslands.java b/NumberOfIslands.java
new file mode 100644
index 0000000..422b80e
--- /dev/null
+++ b/NumberOfIslands.java
@@ -0,0 +1,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));
+ }
+}