在 JavaScript 中具有所需总和的二进制子数组
问题
我们需要编写一个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
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短