Ctrl K

Место подальше от всех

Средняя
Ряд кресел в зале описан массивом row: row[i] = 1, если кресло i занято, и 0, если свободно. В ряду есть хотя бы одно свободное и хотя бы одно занятое кресло. Вы хотите сесть на свободное кресло так, чтобы расстояние до ближайшего соседа было как можно больше. Расстояние между креслами i и j равно |i - j|. Верните это наибольшее возможное расстояние.
Пример 1
row=[1, 0, 0, 0, 0, 0, 1, 0, 1] → 3

Если сесть на место 3, ближайший сосед окажется в 3 местах — и слева, и справа. Лучше не получится.

Пример 2
row=[0, 0, 0, 0, 1, 1] → 4

Выгоднее всего сесть на самый край, место 0: до ближайшего человека 4 места.

Пример 3
row=[1, 0] → 1
Ограничения
  • 2 ≤ len(row) ≤ 10⁵
  • row[i] равно 0 или 1
  • Есть хотя бы одно свободное и хотя бы одно занятое кресло
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДве доски и вода СредняяТройки с нулевой суммой СредняяСумма тройки ближе всего к цели СредняяЧетыре числа с заданной суммой СредняяСледующая расстановка по порядку Средняя
загружаем Python…
Вход
row=[1, 0, 0, 0, 0, 0, 1, 0, 1]
Ожидается
3

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 123 теста на сервере, включая скрытые.