Я был в интервью торговой фирме, мне задали этот вопрос,Есть ли маршрут от города a до города b не более, чем x дней?
Вы путешествуете по штату в автобусах, автобусы могут останавливаться в любых возможных городах C, и вам нужно найти способ отправиться из города a до города b. Есть общие автобусы B, каждый из которых путешествует между двумя городами. Все автобусы ходят на ежедневной основе, например, каждый автобус x оставляет какой-то город c1 в день d1 и прибывает в другой город b1 в другой день d2 (d2> d1). Предположим, что если вы приедете в город в день d, вы можете поймать любой автобус, покидающий город в день d или после.
Вам даны a1, b1, d1 и d2 для автобусов B. описать алгоритм, определяющий, существует ли маршрут от города a до города b не более, чем D дней, и анализировать время выполнения.
Сначала я попытался смоделировать проблему в алгоритме кратчайшего пути, но в тот момент я не мог понять, я опрокинул интервью.
Эти вопросы не ищут для вас конкретного ответа. Они ищут, чтобы понять, что ваш мыслительный процесс, чтобы сделать это. Меня спросили однажды: «Если бы вы собирались открыть новый продуктовый магазин в миле отсюда, как бы вы определили, сколько у вас выплат?» Понятно, что искатель не ожидал от меня ответа; они просто хотели услышать, как я объясняю свои мысли о том, как я пойду на решение. –
Боюсь, что вы были правы с вашим самым коротким путем. Граф имеет города как вершины, а шины - как ребра. Края взвешиваются весом, большим или равным одному дню. В качестве вариации вы прерываете самый быстрый алгоритм пути при превышении X. Обратите также внимание на то, что вас не просят найти самую быструю передачу, но только возможен ли переход через X дней. Простая причина заключается в том, что нужно найти какой-то путь, для которого вы можете использовать обычную BFS, но разница в методе кратчайшего пути пренебрежимо мала. Поскольку, наконец, фактический вес пути важен, это более легкий подход. –