Binary Subarrays With Sum LeetCode solution in C++

1
class Solution {
2
public:
3
int lessequal(vector<int> &nums, int goal) {
4
if (goal < 0) return 0;
5

6
int n = nums.size();
7
int i = 0, j = 0;
8
int sum = 0;
9
int ans = 0;
10

11
while (j < n) {
12
sum += nums[j];
13

14
while (sum > goal) {
15
sum -= nums[i];
16
i++;
17
}
18
ans += j - i + 1;
19
j++;
20
}
21

22
return ans;
23
}
24

25
int numSubarraysWithSum(vector<int> &nums, int goal) {
26
return lessequal(nums, goal) - lessequal(nums, goal - 1);
27
}
28
};
29

30
// our function is giving number of subarrays with sum less or equal to goal.
31
// upvote if it helps.

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0