Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng nhị phân, arr, làm đối số đầu tiên và một số, đích, làm đối số thứ hai.
Hàm của chúng ta được coi là đếm số lượng mảng con tồn tại trong mảng arr, tổng các phần tử của chúng bằng số đếm. Cuối cùng chúng ta cũng nên trả lại số lượng này.
Ví dụ:nếu đầu vào của hàm là
Đầu vào
const arr = [1, 0, 1, 0, 1]; const target = 2;
Đầu ra
const output = 4;
Giải thích đầu ra
Bởi vì các mảng con mong muốn là:
[1,0,1][1,0,1,0] [0,1,0,1] [1,0,1]
Ví dụ
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));
Đầu ra
4