难度:中等。
深搜,我用stack解决的。
正确解法:
class Solution {
public:
int findCircleNum(vector<vector<int>>& isConnected) {
int flag[201] = {
0};
int n = isConnected.size();
int num = 0;
for(int i = 0; i < n; i++){
if(flag[i])continue;
flag[i] = 1;
num++;
stack<int> mystack;
mystack.push(i);
while(!mystack.empty()){
int now = mystack.top();
mystack.pop();
int k = isConnected[now].size();
for(int j = 0; j < k; j++){
if(now != j && isConnected[now][j] && flag[j] == 0){
mystack.push(j);
flag[j] = 1;
}
}
}
}
return num;
}
};