हमें एक JavaScript फ़ंक्शन लिखना है जो एकमात्र आर्गुमेंट के रूप में एक बाइनरी सरणी (एक सरणी जिसमें केवल 0 या 1 होते हैं) लेता है।
फ़ंक्शन को सरणी के उस लगातार उप-सरणी की लंबाई ढूंढनी चाहिए जिसमें केवल 1 होते हैं और उसे लौटाना चाहिए।
उदाहरण
यदि इनपुट सरणी है:
const arr = [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1];
तो आउटपुट होना चाहिए:
const output = 4;
हम स्लाइडिंग विंडो एल्गोरिदम का उपयोग करेंगे ताकि सबसे बड़ी विंडो (आकार में सबसे बड़ी) को कैप्चर किया जा सके जिसमें केवल 1 हों।
उदाहरण
const arr = [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1];
const findMaxConsecutiveOnes = (arr = []) => {
let left = 0;
let right = 0;
let max = 0;
while (right < arr.length) {
if (arr[right] === 0) {
if (right - left > max) {
max = right - left
};
right++;
left = right;
} else {
right++
};
};
return right - left > max ? right - left : max;
}
console.log(findMaxConsecutiveOnes(arr));
आउटपुट
4