原题目:https://leetcode-cn.com/problems/binary-subarrays-with-sum/
思路:
使用前缀和哈希,以前缀和为键值,前缀和的个数为值。
代码:
class Solution {
public:
int numSubarraysWithSum(vector<int>& A, int S) {
int n = A.size(),sum=0,count=0;
map<int,int> m;
m[0]=1;
for(int i=0;i<n;i++){
sum += A[i];
count += sum>=S?m[sum-S]:0;
m[sum] += 1;
}
return count;
}
};