Лучшее место на парковке

средне
# решено

Дан массив spots, где spots[i] = 1 — занятое место, spots[i] = 0 — свободное. Нужно выбрать свободное место так, чтобы расстояние до ближайшей занятой машины было максимальным. Вернуть это максимальное расстояние.

Расстояние между местами — разность их индексов. Для каждого свободного места рассматривается ближайшая занятая машина слева и справа; берётся минимум из двух расстояний. Если с одной стороны машин нет — учитывается только другая сторона.

Важно: гарантировано есть хотя бы одно свободное и хотя бы одно занятое место.

Пример 1:

Ввод: spots = [0,1,0,0,0,1,0,1,0]
Вывод: 2
Объяснение: лучшее место — индекс 3. Слева ближайшая машина на индексе 1 (расстояние 2), справа — на индексе 5 (расстояние 2). Минимум = 2. Для всех остальных свободных мест минимальное расстояние меньше.

Пример 2:

Ввод: spots = [0,0,0,1,0,1]
Вывод: 3
Объяснение: лучшее место — индекс 0. Машин слева нет, справа ближайшая на индексе 3 (расстояние 3).

Пример 3:

Ввод: spots = [1,0,0,1]
Вывод: 1

Ограничения:

  • len(spots) >= 2
  • Значение каждого элемента: 0 или 1