import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param grid int整型二维数组
* @return int整型
*/
public int maxAreaIsland (int[][] grid) {
// write code here
// 如果一个元素是岛屿,则查找他的上下左右是否是岛屿,是的话数量累加1,然后清空走过的路径
// 判断是否大于之前的最大岛屿
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[0].length; j++) {
if (grid[i][j] == 1) {
clear(grid, i, j);
} else {
size = 0;
}
}
}
return max;
}
int max = 0;
int size = 0;
private void clear(int[][] grid, int i, int j) {
if (size > max) {
max = size;
}
if (i >= 0 && i < grid.length && j >= 0 && j < grid[0].length &&
grid[i][j] == 1) {
size++;
grid[i][j] = 0;
clear(grid, i - 1, j);
clear(grid, i, j - 1);
clear(grid, i, j + 1);
clear(grid, i + 1, j);
}
}
}