/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 判断岛屿数量
 * @param grid char字符型二维数组 
 * @param gridRowLen int grid数组行数
 * @param gridColLen int* grid数组列数
 * @return int整型
 */
 void iszero(char** a,int i,int j,int row,int col){
    if(i>0&&a[i-1][j]=='1'){                                //上边
        a[i-1][j]='0';iszero(a, i-1, j, row, col);
    }
    if(i<row-1&&a[i+1][j]=='1'){                            //下边
        a[i+1][j]='0';iszero(a, i+1, j, row, col);
    }
    if(j<col-1&&a[i][j+1]=='1'){                            //右边
        a[i][j+1]='0';iszero(a, i, j+1, row, col);
    }
    if(j>0&&a[i][j-1]=='1'){
        a[i][j-1]='0';iszero(a, i, j-1, row, col);           //左边
    }
 }
int solve(char** grid, int gridRowLen, int* gridColLen ) {
    // write code here
    int i=0,j=0;
    int num=0;
    for(i=0;i<gridRowLen;i++){
        for(j=0;j<*gridColLen;j++){
            if(grid[i][j]=='1'){                        //这个是‘1’,
                grid[i][j]='0';                          //这步可以不用,因为向后循环检验,不会再检查这个
                iszero(grid, i, j, gridRowLen,*gridColLen); //邻近的上下左右全都查查,并且都置为‘0’
                num++;                  //就相当于,小岛的n块土地都浓缩到这一块,iszero就是浓缩的过程。计数一次
            }
        }
    }
    return num;
}