Дан массив целых чисел nums
и целое число k
Верните общее количество подмассивов, сумма которых равна k
.
Подмассив – это непрерывная непустая последовательность элементов внутри массива.
Входные данные: nums = [1,1,1], k = 2
Результат: 2
Входные данные: nums = [1,2,3], k = 3
Результат: 2
class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
unordered_map<int,int>mp;
int ans = 0, sum = 0, len = nums.size();
mp[0] = 1;
for(int i = 0; i < len; i++) {
sum += nums[i];
ans += mp[sum - k];
mp[sum]++;
}
return ans;
}
};