写的比较复杂了。
class Solution {
public int numSubarraysWithSum(int[] A, int S) {
// 双指针 start = 0 end = start+1
// start固定,end找到不满足条件的1之后(当前和大于S),停止end指针的遍历
int count = 0;
for(int start = 0;start<A.length;start++){
if(A[start]==S){
count++;
}
int end = start+1;
int sum = 0;
int t = S - A[start];
while(end<A.length){
if(sum+A[end]==t){
sum+= A[end];
end++;
count++;
}else if(sum+A[end]<t){
sum+=A[end];
end++;
}else{
break;
}
}
}
return count;
}
}