930. Binary Subarrays With Sum
阿新 • • 發佈:2018-12-01
In an array A
of 0
s and 1
s, how many non-empty subarrays have sum S
?
Example 1:
Input: A = [1,0,1,0,1], S = 2 Output: 4 Explanation: The 4 subarrays are bolded below: [1,0,1,0,1] [1,0,1,0,1] [1,0,1,0,1] [1,0,1,0,1]
Note:
A.length <= 30000
0 <= S <= A.length
A[i]
is either0
or1
.
public int numSubarraysWithSum(int[] A, int S) { int res = 0; for (int i = 0; i < A.length; i++) { int sum = 0, j = i; if (A[j] > S) continue; if (sum == S) j++; while (sum < S) { if (j < A.length) { sum += A[j++]; } else { break; } } if (sum == S) res += 1; try{ while (A[j] == 0) { res += 1; j++; } } catch (Exception e) { continue; } } return res; }