কম্পিউটার

ফ্লিপ করার জন্য শূন্য খুঁজুন যাতে পরপর 1 এর সংখ্যা C++ এ সর্বাধিক করা যায়


এই টিউটোরিয়ালে, আমরা অ্যারেতে পরপর 1 এর সর্বাধিক সংখ্যা পেতে শূন্যের সংখ্যা খুঁজে বের করতে যাচ্ছি।

আমরা সমস্যা সমাধানের জন্য স্লাইডিং উইন্ডো পদ্ধতি ব্যবহার করতে যাচ্ছি। আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷

  • ফ্লিপ করার জন্য অ্যারে এবং সর্বাধিক শূন্য শুরু করুন।

  • দৈর্ঘ্য সহ সূচী শুরু, শেষের উইন্ডো শুরু করুন।

  • পরপর 1 এর দৈর্ঘ্য এবং প্রারম্ভিক সূচকের সর্বাধিক উপ-অ্যারে সংরক্ষণ করুন।

  • শেষ সূচকগুলি অ্যারের দৈর্ঘ্য অতিক্রম না করা পর্যন্ত অ্যারের উপর পুনরাবৃত্তি করুন৷

  • যদি শূন্যের সংখ্যা সর্বাধিক শূন্য গণনার চেয়ে কম হয় তাহলে শেষ সূচকটি বৃদ্ধি করুন এবং বর্তমান মান শূন্য হলে শূন্য গণনা করুন।

  • যদি শূন্যের সংখ্যা সর্বাধিক শূন্য গণনার চেয়ে বেশি হয় তাহলে প্রারম্ভিক সূচকটি বৃদ্ধি করুন এবং বর্তমান মান শূন্য হলে শূন্য গণনা হ্রাস করুন।

  • বর্তমান উইন্ডোর দৈর্ঘ্য আগেরটির থেকে বেশি হলে সর্বাধিক উইন্ডো আপডেট করুন।

  • অ্যারের উপর পুনরাবৃত্তি করুন এবং উইন্ডো প্রারম্ভিক সূচী ব্যবহার করে শূন্য সূচকগুলি মুদ্রণ করুন।

উদাহরণ

আসুন কোডটি দেখি।

#include <bits/stdc++.h>
using namespace std;
void zeroesIndexes(int arr[], int maxZeroes, int n) {
   int start = 0, end = 0;
   int zeroesCount = 0;
   int bestWindowCount = 0, bestWindowStartIndex = 0;
   while (end < n) {
      if (zeroesCount <= maxZeroes) {
         if (arr[end] == 0) {
            zeroesCount++;
         }
         end++;
      }
      if (zeroesCount > maxZeroes) {
         if (arr[start] == 0) {
            zeroesCount--;
         }
         start++;
      }
      if ((end - start > bestWindowCount) && (zeroesCount <= maxZeroes)) {
         bestWindowCount = end - start;
         bestWindowStartIndex = start;
      }
   }
   cout << "The indexes are ";
   for (int i = 0; i < bestWindowCount; ++i) {
      if(arr[bestWindowStartIndex + i] == 0)
         cout << bestWindowStartIndex + i << " ";
   }
}
int main() {
   int arr[] = {1, 0, 0, 1, 1, 0, 1, 0, 1, 1};
   int maxZeroes= 2;
   zeroesIndexes(arr, maxZeroes, 10);
   return 0;
}

আউটপুট

আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।

The indexes are 5 7

উপসংহার

টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।


  1. C++ ব্যবহার করে শূন্যের সংখ্যা নির্ণয় করুন

  2. C++ ব্যবহার করে Pell নম্বর খুঁজুন

  3. N-এর ভিত্তি B প্রতিনিধিত্বে অনুগামী শূন্যের সংখ্যা খুঁজুন! C++ ব্যবহার করে

  4. বেস 16 N এর প্রতিনিধিত্বে অনুগামী শূন্যের সংখ্যা খুঁজুন! C++ ব্যবহার করে