← К задачам
Средне · +3Префиксные суммыСловари

Число подотрезков с суммой S

Дан список целых чисел arr (числа могут быть отрицательными) и целое число s.

Реализуйте функцию count_subarrays_with_sum(arr, s), которая возвращает количество непустых подряд идущих подотрезков, сумма которых равна s. Решение должно работать за O(n) с помощью префиксных сумм и словаря.

Формат входа: arr — список целых чисел (возможно пустой), s — целевая сумма.

Формат выхода: целое число — количество подотрезков.

Примеры:

count_subarrays_with_sum([1, 1, 1], 2) -> 2
count_subarrays_with_sum([1, -1, 1, -1], 0) -> 4
count_subarrays_with_sum([], 0) -> 0
def count_subarrays_with_sum(arr, s):
    # ваш код
    pass
Для запуска тестов необходима авторизация.
Поддержать проект