graphs-general

Run Settings
LanguageJavaScript
Language Version
Run Command
const graph = [ [1], [0, 2, 4, 5], [1, 4, 5], [], [5, 2, 1], [1, 2, 4], ]; function validateAdjacencyList(graph) { const nodesCount = graph.length; for (let node = 0; node < nodesCount; node++) { const seen = new Set(); for (const nbr of graph[node]) { // Every node is between 0 and V - 1. if (nbr < 0 || nbr >= nodesCount) return false; // There are no self-loops. if (node === nbr) return false; // There are no parallel edges. if (seen.has(nbr)) return false; seen.add(nbr); } } // If node1 appears in graph[node2], then node2 also appears in graph[node1]. const edges = new Set(); for (let node1 = 0; node1 < nodesCount; node1++) { for (const node2 of graph[node1]) { const edge = `[${Math.min(node1, node2)}, ${Math.max(node1, node2)}]`; if (edges.has(edge)) edges.delete(edge); else edges.add(edge); } } return edges.size === 0; } const verdict = validateAdjacencyList(graph); console.log(verdict);
Editor Settings
Theme
Key bindings
Full width
Lines