21. Подмассивы с суммой K#
| 🎯 Уровень | 🟠 Middle |
| 🔗 Источник | LeetCode 560 — Subarray Sum Equals K |
| 📊 Сложность | Medium |
| 🏷️ Темы | префиксные суммы, хеш-таблицы |
📝 Условие#
Посчитайте количество непрерывных подмассивов с суммой ровно k (числа могут быть отрицательными).
Совет
На LeetCode
mainне нужен: данные приходят аргументами метода классаSolution.
Формат ниже — для запуска у себя черезcin/cout.
📥 Входные данные#
В первой строке два числа n и k (1 ≤ n ≤ 2·10⁴). Во второй — n целых чисел (-1000 ≤ nums[i] ≤ 1000).
📤 Выходные данные#
Одно число — количество подмассивов с суммой k.
🧪 Тесты#
Тест 1#
Ввод:
3 2
1 1 1
Вывод:
2
Тест 2#
Ввод:
3 3
1 2 3
Вывод:
2
Тест 3#
Ввод:
5 0
1 -1 1 -1 0
Вывод:
7
Заметка
Оригинальное условие и проверка решения на всех тестах — по ссылке на источник.
💡 Подсказка#
Открыть, если застрял(а) больше чем на 20 минут
cnt[prefix - k].