class Solution {
int maxArea = 0;
public int maxAreaOfIsland(int[][] grid) {
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[0].length; j++) {
maxArea = Math.max(maxArea,
maxAreaOfIsland(grid, i, j));
}
}
return maxArea;
}
public int maxAreaOfIsland(int[][] grid, int r, int c) {
if (r < 0 || c < 0 ||
r == grid.length ||
c == grid[0].length ||
grid[r][c] == 0) {
return 0;
}
grid[r][c] = 0;
return (1 + maxAreaOfIsland(grid, r + 1, c) +
maxAreaOfIsland(grid, r - 1, c) +
maxAreaOfIsland(grid, r, c + 1) +
maxAreaOfIsland(grid, r, c - 1));
}
}