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); } } } };