Back to all solutions
#1557 - Minimum Number of Vertices to Reach All Nodes
Problem Description
Given a directed acyclic graph, with n vertices numbered from 0 to n-1, and an array edges where edges[i] = [fromi, toi] represents a directed edge from node fromi to node toi.
Find the smallest set of vertices from which all nodes in the graph are reachable. It's guaranteed that a unique solution exists.
Notice that you can return the vertices in any order.
Solution
/**
* @param {number} n
* @param {number[][]} edges
* @return {number[]}
*/
var findSmallestSetOfVertices = function(n, edges) {
const hasIncomingEdge = new Array(n).fill(false);
for (const [_, to] of edges) {
hasIncomingEdge[to] = true;
}
const result = [];
for (let i = 0; i < n; i++) {
if (!hasIncomingEdge[i]) {
result.push(i);
}
}
return result;
};