Обнаружение цикла в ориентированном графе

Графы Средняя
Дан ориентированный граф из n вершин (0..n-1) и список рёбер edges ([u, v]). Определите, есть ли в графе цикл, используя DFS с раскраской вершин (белая/серая/чёрная).
Сигнатура функции
has_cycle_directed(n: int, edges: list[list[int]]) -> bool
Примеры
ВходОжидаемый результат
[3, [[0, 1], [1, 2], [2, 0]]]true
[3, [[0, 1], [1, 2]]]false
[1, []]false
[2, [[0, 1], [1, 0]]]true
[4, [[0, 1], [1, 2], [2, 3]]]false
[4, [[0, 1], [1, 2], [2, 3], [3, 1]]]true
[5, []]false
[3, [[0, 0]]]true
[6, [[0, 1], [1, 2], [3, 4], [4, 5]]]false
[4, [[0, 1], [0, 2], [1, 3], [2, 3], [3, 0]]]true
1решили
1пытались
100%успешность
Войдите, чтобы решить →