Java/695.(岛屿的最大面积) Max Area of Island

先上题目

Java/695.(岛屿的最大面积) Max Area of Island_第1张图片


思路:在数组里面寻找相连的1的个数,很容易联想到递归方法(或图的广度遍历)。首先对数组进行循环,遇到“1”时开始计算面积,通过递归方法。(这里需要注意的是要对”垂直“,“水平”,即”上“,”下“,”左“,”右“进行寻找,只对两个方向遍历会遗漏遍历 ,如[[0,1][1,1]]。并且为了使已经遍历过的不再重复计算,在遍历后将其赋值为“0”表示已经遍历过了)。最后得出每次计算面积中的最大值即可。


代码部分

class Solution {
    
    public int maxAreaOfIsland(int[][] grid) {
        int i,j,temp,result=0;
        for(i=0;i=grid.length||j>=grid[0].length||grid[i][j]!=1) return 0;
            
         grid[i][j]=0;
            return 1+countArea(grid,i+1,j)+countArea(grid,i-1,j)+countArea(grid,i,j+1)+countArea(grid,i,j-1);
    }
      
}


你可能感兴趣的:(练习,算法,递归,Java,简单)