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

解答:
class Solution {
public:
int findCircleNum(vector<vector<int>>& isConnected) {
int r = 0;
vector<int> visited(isConnected.size(), 0);
for (int i = 0; i < isConnected.size(); i++) {
if (!visited[i]) {
r += 1;
dfs(isConnected, i, visited);
}
}
return r;
}
void dfs(vector<vector<int>>& isConnected, int idx, vector<int>& visited) {
visited[idx] = 1;
for (int i = 0; i < isConnected.size(); i++) {
if (!visited[i] && isConnected[idx][i]) {
dfs(isConnected, i, visited);
}
}
}
};