TGViewer
Максим Фатин | про IT Максим Фатин | про IT @algocode_algorithms · 4.13K subscribers
Post #260 3.08K
Свеженькая задача Яндекса

Недавно ребята из сообщества
algocode.io гоняли на собесы и принесли такую задачку
Дан список перелётов tickets, где
tickets[i] = [A, B] — перелёт между городами A и B (направление неизвестно).

Все перелёты относятся к одному путешествию:
• каждый следующий перелёт начинается в городе, где закончился предыдущий
• ни один город не посещается дважды
• начальный город ≠ конечному

Нужно восстановить порядок городов в маршруте.
Если есть несколько вариантов — вернуть любой.

Пример

Ввод:
tickets = [["Berlin","Rome"],["Berlin","Dubai"]]

Вывод:
["Dubai","Berlin","Rome"] или ["Rome","Berlin","Dubai"]
Вся сложность в том, что направления запутаны!

Именно на этом валятся


Идея решения такая

• строим хеш-таблицу graph, где ключ — город отправления, а значение — список городов прибытия (в 2 стороны строим путь)

• находим любую вершину, у которой в значении только 1 город — это будет точка старта

• обходим граф из стартовой точки, поддерживая visited и не посещая уже отмеченные точки

И в итоге получим такое решение

from typing import *
from collections import defaultdict

def route(tickets: List[List[str]]) -> List[str]:
# для каждого города храним список городов, с которыми он связан
graph = defaultdict(list)
for a, b in tickets:
graph[a].append(b)
graph[b].append(a)

# начальный город — тот, у которого ровно одна связь (край маршрута)
start = ""
for city, neighbors in graph.items():
if len(neighbors) == 1:
start = city
break

# восстанавливаем маршрут, отмечая посещённые города
result = [start]
visited = {start}
for _ in range(len(tickets)):
current = result[-1]
for neighbor in graph[current]:
if neighbor not in visited:
visited.add(neighbor)
result.append(neighbor)
break

return result



На leetcode не нашел такой задачки

Для тех кто уже в сообществе: решить можно самому ТУТ
  • ❤‍🔥 22
  • 🌭 6
More from @algocode_algorithms
  1. Sep 23, 2026Оффер в ситидрайв на 320 000 От нашего студента с программы "оффер под ключ" по Golang нап…
  2. Sep 21, 2026AI-интервьюер Видел его во многих продуктах Мало того — даже в некоторых компаниях есть по…
  3. Sep 17, 2026Гонял общаться с HR и HRD по текущему рынку найма Напряг август так скажем Там прям в моме…
  4. Sep 15, 2026Превью для нового видоса готова Ждете? Если да - бахни 🌭
  5. Sep 14, 2026Продакты vs Разработчики С одной стороны с вайбкодингом продакты стали делать быстрые прот…
  6. Sep 11, 2026Пятница 20:00 - ждал этого всю неделю, чтобы что-нибудь задеплоить
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →