一、题目
二、题解
维护一个并查集即可
class Solution {
public:
int unionset[201];
int find(int x) {
if (x != unionset[x]) unionset[x] = find(unionset[x]);
return unionset[x];
}
int findCircleNum(vector<vector<int>>& isConnected) {
int n = isConnected.size(), res = 0;
for (int i = 0; i < n; i++) unionset[i] = i;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (i != j && isConnected[i][j])
unionset[find(i)] = find(j);
for (int i = 0; i < n; i++)
if (unionset[i] == i)
res++;
return res;
}
};