JavaScript 中具有所需和的二進位制子陣列
問題
我們需要編寫一個 JavaScript 函式,該函式將二進位制陣列 arr 作為第一個引數,將數字 target 作為第二個引數。
我們的函式應該對陣列 arr 中存在的子陣列的數量進行計數,其元素的總和等於 count。我們應該最終返回這個 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP