程式語言 - LeetCode - C++ - 547. Number of Provinces



參考資訊:
https://algo.monster/liteproblems/547
https://blog.csdn.net/navicheung/article/details/135835250

題目:


解答:

class Solution {
public:
    int findCircleNum(vector<vector<int>>& isConnected) {
        int n = isConnected.size();
        vector<bool> visited(n, false);

        auto dfs = [&](this auto&& dfs, int idx) -> void {
            visited[idx] = true;

            for (int i = 0; i < n; ++i) {
                if (!visited[i] && isConnected[idx][i]) {
                    dfs(i);
                }
            }
        };

        int ans = 0;

        for (int i = 0; i < n; ++i) {
            if (!visited[i]) {
                ans += 1;
                dfs(i);
            }
        }

        return ans;
    }
};