Выбор ответа Middle Префиксные суммы обновлено
Зачем map.set(0, 1)
Вопрос
В решении «подмассивы с суммой k» Map префиксов инициализируют new Map([[0, 1]]). Что сломается без этого?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Не посчитаются подмассивы, начинающиеся с самого индекса 0. Пустой префикс (сумма 0 до первого элемента) это законная левая граница.
Варианты ответа
- Ничего: это оптимизация, чтобы не проверять пустую Map
- Все подмассивы будут посчитаны дважды, ответ удвоится
- Будет деление на ноль при первом совпадении префикса
- Не посчитаются подмассивы, начинающиеся с самого индекса 0правильный ответ
Разбор
Пустой префикс (сумма 0 до первого элемента) это законная левая граница. Если сумма первых j элементов равна k, нужно найти в Map префикс 0. Без начальной записи такие подмассивы теряются.
- Это не оптимизация, а корректность.
- Двойного счёта нет.
- Деления в алгоритме нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.