题解 | #岛屿数量#

岛屿数量

https://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e


class Solution {
    int counts = 0;
    int visited[205][205];
    int m;
    int n;
    int a[4] = { -1100 };
    int b[4] = { 00, -11 };
  public:
    /**
     * 判断岛屿数量
     * @param grid char字符型vector<vector<>>
     * @return int整型
     */

    void dfs(int iint jvector<vector<char> >& grid) {
        if (i > m - 1 || j > n - 1 || i < 0 || j < 0 || grid[i][j] == '0' ||
                (grid[i][j] == '1' && visited[i][j] == 1)) {
            return;
        }
        visited[i][j] = 1;
        for (int k = 0; k < 4; k++) {
            int newi = i + a[k];
            int newj = j + b[k];
            dfs(newi, newj, grid);
        }
    }

    int solve(vector<vector<char> >& grid) {
        // write code here
        m = grid.size();
        n = grid[0].size();
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (grid[i][j] == '1' && visited[i][j] == 0) {
                    counts++;
                    dfs(i, j, grid);
                }
            }
        }
        return counts;
    }

};
全部评论

相关推荐

喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
牛客722552937号:新锐之星有点坑爹,特别是对男的
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务