aboutsummaryrefslogtreecommitdiff
path: root/NumberOfIslands.java
diff options
context:
space:
mode:
authorMichael Hunteman <michael@huntm.net>2022-10-01 18:15:49 -0500
committerMichael Hunteman <michael@huntm.net>2022-10-01 18:15:49 -0500
commit27cd471ef172362cfdf8621c0c9a1c4edd35863e (patch)
tree414fbfe36558167fc90e9244e1d9ab0adea40fc7 /NumberOfIslands.java
parent6522012065712fb0ece31bff9ff10b38a83b10e1 (diff)
Add Number of Islands
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));
+ }
+}