Фактический вопрос заключается в следующем: Какую структуру данных вы будете использовать, чтобы найти бесплатные парковочные места в гараже с миллионами точек?Поиск свободного места в огромном пространстве памяти
То, что я подумал:
- Я мог бы использовать
LinkedHashMap
и продолжать двигаться свободные места в передней части очереди, но я не думаю, что это правильное решение.
Любые мысли?
Вы заботитесь о том, чтобы найти ближайшее место или все «свободные места для парковки»? Является ли гараж многоуровневым? Как бы вы определили стоимость перехода на следующий уровень по сравнению с дальнейшим продвижением на этом уровне? Это все вопросы, которые вы могли бы задать, думая о решении. – Seph
Простым решением будет поддержка статического массива для всех парковочных мест и связанного списка для бесплатных мест. Сначала все пятна находятся в свободном списке. Когда приходит запрос на парковку, вы возвращаете голову списка ссылок и удаляете его из него, а также отмечаете его в массиве. Когда пятно освобождается, добавьте его в связанный список (пометьте его в массиве). –