[LeetCode 547] 朋友圈

547. 朋友圈

dfs

这个dfs跟我想的不太一样。以为是跟这个差不多,200. 岛屿数量,但是这道题因为是图无向边,双向连接的特性,少搜了很多。不是一个点一个点的搜了,是一行一行地搜。

class Solution {
  public:
    void dfs(int k, vector &visit, vector> &M) {
        visit[k] = 1;
        for (int i = 0; i < M[k].size(); i++) {
            if (!visit[i] && M[k][i] == 1) {
                dfs(i, visit, M);
            }
        }
    }
    int findCircleNum(vector> &M) {
        int cnt = 0;
        vector visit(M.size(), 0);
        for (int i = 0; i < M.size(); i++) {
            if (!visit[i]) {
                dfs(i, visit, M);
                cnt++;
            }
        }
        return cnt;
    }
};


你可能感兴趣的:([LeetCode 547] 朋友圈)