समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक बाइनरी सरणी में लेता है, एआर, पहले तर्क के रूप में, और एक संख्या, लक्ष्य, दूसरे तर्क के रूप में।
हमारा कार्य सरणी गिरफ्तारी में मौजूद उप-सरणी की संख्या की गणना करना है, जिनके तत्वों का योग गिनती के बराबर है। हमें अंततः यह गणना वापस कर देनी चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
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