Skip to content

Commit 6b06382

Browse files
refactor 695
1 parent 6cb6724 commit 6b06382

File tree

2 files changed

+28
-26
lines changed

2 files changed

+28
-26
lines changed

src/main/java/com/fishercoder/solutions/_695.java

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,35 +32,37 @@
3232

3333
public class _695 {
3434

35-
public int maxAreaOfIsland(int[][] grid) {
36-
if (grid == null || grid.length == 0) {
37-
return 0;
38-
}
39-
int m = grid.length;
40-
int n = grid[0].length;
41-
int max = 0;
42-
for (int i = 0; i < m; i++) {
43-
for (int j = 0; j < n; j++) {
44-
if (grid[i][j] == 1) {
45-
int area = dfs(grid, i, j, m, n, 0);
46-
max = Math.max(area, max);
35+
public static class Solution1 {
36+
public int maxAreaOfIsland(int[][] grid) {
37+
if (grid == null || grid.length == 0) {
38+
return 0;
39+
}
40+
int m = grid.length;
41+
int n = grid[0].length;
42+
int max = 0;
43+
for (int i = 0; i < m; i++) {
44+
for (int j = 0; j < n; j++) {
45+
if (grid[i][j] == 1) {
46+
int area = dfs(grid, i, j, m, n, 0);
47+
max = Math.max(area, max);
48+
}
4749
}
4850
}
51+
return max;
4952
}
50-
return max;
51-
}
5253

53-
int dfs(int[][] grid, int i, int j, int m, int n, int area) {
54-
if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] == 0) {
54+
int dfs(int[][] grid, int i, int j, int m, int n, int area) {
55+
if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] == 0) {
56+
return area;
57+
}
58+
grid[i][j] = 0;
59+
area++;
60+
area = dfs(grid, i + 1, j, m, n, area);
61+
area = dfs(grid, i, j + 1, m, n, area);
62+
area = dfs(grid, i - 1, j, m, n, area);
63+
area = dfs(grid, i, j - 1, m, n, area);
5564
return area;
5665
}
57-
grid[i][j] = 0;
58-
area++;
59-
area = dfs(grid, i + 1, j, m, n, area);
60-
area = dfs(grid, i, j + 1, m, n, area);
61-
area = dfs(grid, i - 1, j, m, n, area);
62-
area = dfs(grid, i, j - 1, m, n, area);
63-
return area;
6466
}
6567

6668
}

src/test/java/com/fishercoder/_695Test.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
import static junit.framework.TestCase.assertEquals;
88

99
public class _695Test {
10-
private static _695 test;
10+
private static _695.Solution1 solution1;
1111
private static int[][] grid;
1212

1313
@Before
1414
public void setup() {
15-
test = new _695();
15+
solution1 = new _695.Solution1();
1616
}
1717

1818
@Test
@@ -27,7 +27,7 @@ public void test1() {
2727
{0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0},
2828
{0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}
2929
};
30-
assertEquals(6, test.maxAreaOfIsland(grid));
30+
assertEquals(6, solution1.maxAreaOfIsland(grid));
3131
}
3232

3333
}

0 commit comments

Comments
 (0)