Smallest cycle node

Write codeMedium25 min

Your task

A build system has n targets (0..n-1) and edges [a, b] meaning target a depends on target b. A circular dependency makes the build impossible. Return the smallest-numbered node that participates in any dependency cycle, or -1 if the dependency graph is acyclic. A self-loop [a, a] counts as a cycle on node a.

Examples

find_cycle_node(n: int, edges: list[list[int]]) -> int
Example 1
Inputfind_cycle_node(4, [[0, 1], [1, 2], [2, 0], [2, 3]])
Output0