// const input = '[1,2,3]';
const input = "[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[1,1,1,1,1,1,1],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]]"
const arr = JSON.parse(input);
console.log(arr)
const res = [];
for (let i=0; i<arr.length;i++){
//标记,判断当前节点是否已经被记录(已属于已有的某个连通分量)
let flag = false;
//当前所指向的连通分量
let temp = null;
for(const x of res){
if(x.has(i)){
temp = x;
flag = true;
break;
}
}
if(!flag){
//如果未找到,则创建一个新的set:表示一个新的连通分量
const set = new Set();
set.add(i);
res.push(set);
temp = set;
}
for(let j=i+1;j<arr.length;j++){
//邻接矩阵对称,所以从i+1开始
if(arr[i][j]===1){
//i与j直接连通,将j存储到i所属的连通分量中
temp.add(j)
}
}
}
//输出结果
console.log(res.length);
console