समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो एक बाइनरी सरणी (एक सरणी जिसमें केवल 0 और 1 होते हैं), arr, एकमात्र तर्क के रूप में लेता है। अगर हम ज़्यादा से ज़्यादा 0 पर फ़्लिप कर सकते हैं, तो हमारे फ़ंक्शन को इस सरणी में लगातार 1s की अधिकतम संख्या मिलनी चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [1, 0, 1, 1, 0];
तब आउटपुट होना चाहिए -
const output = 4;
आउटपुट स्पष्टीकरण
अगर हम एरे में इंडेक्स 1 पर 0 को फ्लिप करते हैं, तो हमें लगातार 4 1s मिलेंगे।
उदाहरण
इसके लिए कोड होगा -
const arr = [1, 0, 1, 1, 0];
const findMaximumOne = (nums = []) => {
let count = 0;
let first = -1;
let i =0, j = 0;
let res = -Infinity;
while(j < nums.length){
if(nums[j] === 1){
res = Math.max(res, j-i+1);
}else{
count++;
if(count==2){
i = first + 1;
count--;
};
first = j;
};
j++;
};
return res;
};
console.log(findMaximumOne(arr)); आउटपुट
और कंसोल में आउटपुट होगा -
4