leetcode-dfs-547. 省份数量

 

 

class Solution {
public:

    int findCircleNum(vector<vector<int>>& isConnected) {
        int count = 0;
        int m = isConnected.size();
        vector<bool> visited(m,false);
        for(int i = 0; i < m; i++){
            if(!visited[i]){  // 因为visiter是引用传递,下面访问过的值会改变
                dfs(isConnected,i,visited);
                count++;
            }
        }
        return count;
    }

    void dfs(vector<vector<int>>& isConnected, int i, vector<bool> &visited){
        visited[i] = true;  // 🦔标记访问过
        for(int k = 0; k < isConnected.size(); k++){
            // 将i作为横坐标,这一行都是与他相连的城市,用for循环遍历
            // 在判断与其相连的城市是否访问过,通过!visited[k]判断
            if(isConnected[i][k]==1&&!visited[k]){
                dfs(isConnected,k,visited);
            }
        }
    }
};

 

posted @ 2021-08-12 15:28  三一一一317  阅读(24)  评论(0)    收藏  举报