我们需要编写一个 JavaScript 函数,它接受一个二进制数组 arr 作为第一个参数,一个数字 target 作为第二个参数。
我们的函数应该计算数组 arr 中存在的子数组的数量,其元素之和等于 count。我们应该最终返回这个计数。
例如,如果函数的输入是
输入
const arr = [1, 0, 1, 0, 1]; const target = 2;
输出
const output = 4;
输出说明
因为所需的子数组是:
[1,0,1][1,0,1,0] [0,1,0,1] [1,0,1]
const arr = [1, 0, 1, 0, 1]; const target = 2; const countSubarrays = (arr = [], target = 1) => { const map = {} let sum = 0 let count = 0 for (const num of arr) { map[sum] = (map[sum] || 0) + 1 sum += num count += map[sum - target] || 0 } return count }; console.log(countSubarrays(arr, target));输出结果
4