200. 岛屿数量

    科技2022-07-14  116

    深度优先遍历。遍历完一个几点再遍历上下左右节点,然后设置为0,是的不再访问,和之前的题类似

    class Solution {

        public int numIslands(char[][] grid) {

            int count=0;

            for(int i=0;i<grid.length;i++){

                for(int j=0;j<grid[0].length;j++){

                    if(grid[i][j]=='1'){

                        dfs(grid,i,j);

                        count++;

                    }

     

                }

            }

            return count;

        }

     

        public void dfs(char[][]grid,int i,int j){

            //字符0

            if(i<0||j<0||i>=grid.length||j>=grid[0].length||grid[i][j]=='0')               return;

            grid[i][j]='0' ;//不再访问

            dfs(grid,i+1,j);

            dfs(grid,i,j+1);

            dfs(grid,i-1,j);

            dfs(grid,i,j-1);

     

        }

    }

    Processed: 0.011, SQL: 8