JSFiddle - React, Tailwind, and code Playground

by Paulpro

JavaScript

var A = [1,1,2,2,2,3,3,3,4,4];
var B = [1,2,1,1,2,3,4,4,3,4];

var Adj = [];
var visited = [];
var map = [];

for(var i = 0; i < A.length; i++){
    visited[i] = false;
    if(!Adj[A[i]])
        Adj[A[i]] = [];
    if(!Adj[B[i]])
        Adj[B[i]] = [];
    Adj[A[i]].push(B[i]);
    Adj[B[i]].push(A[i]);
}

var block = 0;
for(i = 1; i < Adj.length; i++){
    block++;
    if(!visited[i])
        lol(i);
}

function lol(u){
    visited[u] = true;
    for(i = 1; i < Adj.length; i++){
        if(!visited[i]){
            lol(Adj[i]);
            map[i] = block;
        }
    }
}

console.log(map);