Код Senior Префиксные суммы обновлено
Подмассивы, делящиеся на K
Условие
Сколько непрерывных подмассивов имеют сумму, кратную k.
Примеры
subarraysDivByK([4, 5, 0, -2, -3, 1], 5) // 7
subarraysDivByK([5], 9) // 0
subarraysDivByK([-1, 2, 9], 2) // 2
Как подойти
Ключ не сама сумма, а её остаток: если pre[j] и pre[i] дают одинаковый остаток, разность делится на k. Идиома ((x % k) + k) % k обязательна - без неё отрицательные числа ломают группировку.
Подсказки: 2
- Две префиксные суммы с одинаковым остатком дают кратный отрезок.
- Остаток в JS может быть отрицательным - нормализуй.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.