LeetCode Number of Islands DFS

来源:互联网 发布:黑马程序员 如何 编辑:程序博客网 时间:2024/06/01 08:22

思路:

DFS。

class Solution {private:    void dfs(vector<vector<char>>& grid, int i, int j) {        if(i < 0 || i > grid.size() - 1 || j < 0 || j > grid[0].size() - 1) return;        if(grid[i][j] == '1') {            grid[i][j] = 'N';            dfs(grid, i, j + 1);            dfs(grid, i + 1, j);            dfs(grid, i - 1, j);            dfs(grid, i, j - 1);        }    }public:    int numIslands(vector<vector<char>>& grid) {        int ans = 0;        if(grid.empty() || grid[0].empty()) return ans;        int m = grid[0].size();        int n = grid.size();        for(int i = 0; i < n; ++i) {            for(int j = 0; j < m; ++j) {                if(grid[i][j] == '1') {                    dfs(grid, i, j);                    ans++;                }            }        }        return ans;    }};
0 0