समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी arr और एक संख्या target को आर्गुमेंट के रूप में लेता है।
हमारा फ़ंक्शन उन सन्निकट उपसरणियों की संख्या गिनकर लौटाना चाहिए जिनके सभी तत्वों का गुणनफल target से सख्ती से कम हो।
उदाहरण के लिए, यदि इनपुट है:
इनपुट
const arr = [10, 5, 2, 6]; const target = 100;
आउटपुट
const output = 8;
आउटपुट व्याख्या
वे 8 उपसरणियां जिनका गुणनफल 100 से कम है:
[10], [5], [2], [6], [10, 5], [5, 2], [2, 6], [5, 2, 6].
ध्यान दें कि [10, 5, 2] शामिल नहीं है क्योंकि इसका गुणनफल 100 है जो target से सख्ती से कम नहीं है।
उदाहरण
निम्नलिखित कोड है:
const arr = [10, 5, 2, 6]; const target = 100; const countSubarrays = (arr = [], target = 1) => { let product = 1; let left = 0; let count = 0; for (let right = 0; right < arr.length; right++) { product *= arr[right]; while (left <= right && product >= target) { product /= arr[left]; left += 1; } count += right - left + 1; } return count; }; console.log(countSubarrays(arr, target));आउटपुट
8