Дан массив из нулей и единиц. Удалите из него ровно один элемент так, чтобы получилась самая длинная непрерывная серия единиц. Верните её длину.
Удалить элемент нужно обязательно, даже если в массиве одни единицы. Требование из отчёта: время O(n), дополнительная память O(1).
В работе: Самая длинная серия рабочих дней сервиса, если один день инцидента можно списать как плановые работы.
Пример 1
Ввод
arr = [1, 1, 0, 1]
Вывод
3
Удаляем ноль — остаётся 1, 1, 1.
Пример 2
Ввод
arr = [1, 1, 1]
Вывод
2
Удалить нужно обязательно.
Ограничения
- 1 ≤ длина
arr≤ 300 000 (в JavaScript — до 2 000 000) - Элементы — только 0 и 1
- Лимит — 1 с на тест.
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def longest_after_delete(arr: list[int]) -> int:
Источник: отчёт о Яндексе, 2023. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.