intermediate

Паттерны задач на trees и graphs

Выбирайте DFS, BFS, parent tracking, visited sets и adjacency models для traversal.

Задачи на trees и graphs начинаются с modeling. Trees обычно имеют implicit child links и не имеют cycles; graphs часто требуют build adjacency и tracking visited nodes. DFS естественен для components и backtracking; BFS естественен для shortest unweighted distance и level order.

Компромисс: сравните время, память и сложность реализации до выбора структуры или паттерна.

На интервью: Интервьюеры ожидают описание traversal order, переносимого state и причины termination на cyclic inputs.

Типовые ошибки: Tree solution может сломаться, когда hidden input на самом деле graph с shared nodes. Parent pointers могут вызвать revisiting, если не исключить source traversal.

Чеклист:

  • Смоделируйте adjacency.
  • Выберите DFS или BFS.
  • Явно переносите state.
  • Используйте visited для cycles.