遍历矩阵,找到岛屿后,递归抹掉岛屿,总数+1,全部遍历完成后,返回总数

public int solve(char[][] grid) {
    int sum = 0;
    for (int i = 0; i < grid.length; i++) {
        for (int j = 0; j < grid[i].length; j++) {
            if (grid[i][j] == '0') {
                continue;
            } else {
                search(grid, i, j);
                sum++;
            }
        }
    }
    return sum;
}

public void search(char[][] grid, int x, int y) {
    if (grid[x][y] == '0') {
        return;
    }
    grid[x][y] = '0';
    if (y >= 1) {
        search(grid, x, y - 1);
    }
    if (x <= grid.length - 2) {
        search(grid, x + 1, y);
    }
    if (y <= grid[0].length - 2) {
        search(grid, x, y + 1);
    }
    if (x >= 1) {
        search(grid, x -1, y );
    }
}