Ctrl K

Единиц больше, чем нулей

Средняя
Дан массив bits, состоящий только из нулей и единиц. Посчитайте, во скольких непрерывных отрезках единиц **строго больше**, чем нулей. Отрезки с разными границами считаются разными. Ответ может быть большим — верните его по модулю 10⁹ + 7. Прямой перебор отрезков — O(n²); постарайтесь найти решение быстрее.
Пример 1
bits=[1, 0, 1, 1] → 7

Подходят три одиночные единицы, [1, 1], [0, 1, 1], [1, 0, 1], [1, 0, 1, 1] — всего 7.

Пример 2
bits=[0, 0] → 0

Единиц нет вовсе, ни один отрезок не подходит.

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

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