从头开始遍历二维数组,找到1就把和它相邻的1都变成#,岛屿数量++

class Solution {
public:
    vector<vector<char>> grids;
    int numIslands(vector<vector<char>>& grid) {
        grids = grid;
        int cnt = 0;
        for( int i = 0;i < grids.size(); i++ ){
            for( int j = 0;j < grids[i].size();j ++){
                if( grids[i][j] == '1'){
                    cnt ++;
                    dfs(i,j);
                }
            }
        }
        return cnt;
    }
    void dfs(int i,int j){
        if( i>=0 && i<grids.size() && j>=0 && j<grids[0].size() && grids[i][j]=='1' ){
            grids[i][j] = '#';
            dfs(i+1,j);
            dfs(i-1,j);
            dfs(i,j+1);
            dfs(i,j-1);
        }

    }
};

leetcode 200. 岛屿数量_二维数组

一发过,纪念一下!