先上题目
思路:在数组里面寻找相连的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;i++){
for(j=0;j<grid[0].length;j++){
if(grid[i][j]==1){
result=M