1
var possibleBipartition = function (n, dislikes) {3
dislikes.forEach(([a, b]) => {4
const aDis = g.get(a) || [];5
const bDis = g.get(b) || [];6
g.set(a, aDis.concat(b));7
g.set(b, bDis.concat(a));10
const vis = new Array(n + 1).fill(false);11
const col = new Array(n + 1).fill(-1);13
const dfs = (n, c = 0) => {14
if (vis[n]) return true;19
const nodes = g.get(n) || [];20
for (let node of nodes) {22
if (!dfs(node, 1 - c)) return false;25
if (node != n && col[node] == c) return false;32
for (let i = 1; i <= n; i++) {