কম্পিউটার

জাভাস্ক্রিপ্টে n অদলবদল করার পর সর্বাধিক পরপর 1s


সমস্যা

আমাদেরকে একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি বাইনারি অ্যারে (অ্যারে যেটিতে শুধুমাত্র 0 বা 1 থাকে), প্রথম আর্গুমেন্ট হিসাবে arr এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি সংখ্যা, num হয়৷

আমরা অ্যারেতে উপস্থিত সর্বাধিক 0s সংখ্যা 1s এ পরিবর্তন করতে পারি, এবং আমাদের ফাংশনটি দীর্ঘতম (সংলগ্ন) সাবয়ারের দৈর্ঘ্য ফিরিয়ে দেবে যাতে এই পরিবর্তনগুলি করার পরে শুধুমাত্র 1s থাকে৷

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −

const arr = [1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0];
const num = 2;

তারপর আউটপুট −

হওয়া উচিত
const output = 6;

আউটপুট ব্যাখ্যা

কারণ দুটি শূন্যকে 1 এ পরিবর্তন করার পর, অ্যারের শেষ 6টি উপাদান 1 হবে।

উদাহরণ

এর জন্য কোড হবে −

const arr = [1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0];
const num = 2;
const longestOnes = (arr = [], num = 1) => {
   let max = 0;
   let left = 0;
   let curr = num;
   for(let right = 0; right < arr.length; right++){
      if(arr[right] === 0){
         curr -= 1;
      };
      while(curr < 0){
         if(arr[left] === 0){
            curr += 1;
         };
         left += 1;
      };
      max = Math.max(max, right - left + 1);
   };
   return max;
};
console.log(longestOnes(arr, num));

আউটপুট

এবং কনসোলে আউটপুট হবে −

6

  1. জাভাস্ক্রিপ্টে একটি মোচড় সহ ধারাবাহিক

  2. জাভাস্ক্রিপ্টে n সংখ্যা মুছে ফেলার পরে সবচেয়ে ছোট সংখ্যা

  3. জাভাস্ক্রিপ্টে সংশ্লিষ্ট সংখ্যার পরে ছোট সংখ্যা গণনা করা

  4. জাভাস্ক্রিপ্টে দীর্ঘতম পরপর যোগদান করা