剑指 Offer II 105. 岛屿的最大面积
class Solution {
public int maxAreaOfIsland(int[][] grid) {
int rest = 0;
for(int i =0 ; i<grid.length;i++){
for(int j = 0 ; j<grid[0].length;j++){//遍历二维数组
rest = Math.max(rest,dfs(grid,i,j));//更新最大值
}
}
return rest;
}
public int dfs (int[][] arrs , int i , int j){
if(i<0||i>=arrs.length||j<0||j>=arrs[0].length)return 0;//超出数组索引直接返回0
if(arrs[i][j]==0)return 0;//当前位置没有土地,也直接返回0
else{
arrs[i][j]=0;//如果已经遍历过就初始化为0,防止二次遍历
//分别相上下左右四个方向进行递归,并且要加上自己这个这块面积1
return dfs(arrs,i+1 ,j)+dfs(arrs,i-1 ,j)+dfs(arrs,i ,j+1)+dfs(arrs,i ,j-1)+1;
}
}
}