কম্পিউটার

C++ এ 0 বা 1 হিসাবে সংলগ্ন উপাদানগুলির মধ্যে পার্থক্য সহ সর্বাধিক দৈর্ঘ্যের সাব্যারে


আমাদেরকে যেকোন আকারের একটি অ্যারে দেওয়া হয়েছে এবং কাজটি হল প্রদত্ত অ্যারের সাবয়ারে খুঁজে বের করা যেখানে 0 বা 1 হিসাবে সন্নিহিত উপাদানগুলির মধ্যে পার্থক্য রয়েছে।

ইনপুট − int arr[] ={ 2, 1, 5, 6, 3, 4, 7, 6}

আউটপুট − 0 বা 1 হল − 2

ব্যাখ্যা − 0 বা 1 এর মত পার্থক্য সহ একটি অ্যারের সন্নিহিত উপাদান হল {2, 1}, {5, 6}, { 3, 4} এবং {7.6}। অতএব, সাবয়ারের সর্বোচ্চ দৈর্ঘ্য 2।

ইনপুট − int arr[] ={ 2, 1, 7, 6, 5}

আউটপুট − 0 বা 1 হল − 3

ব্যাখ্যা − 0 বা 1 এর মত পার্থক্য সহ একটি অ্যারের সংলগ্ন উপাদানগুলি হল {2, 1} এবং {7, 6, 5}.. তাই, সাবয়ারের সর্বাধিক দৈর্ঘ্য হল 3৷

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • টাইপ পূর্ণসংখ্যার একটি অ্যারে ইনপুট করুন যাতে ধনাত্মক এবং নেতিবাচক উপাদান থাকতে পারে।
  • একটি অ্যারের আকার গণনা করুন এবং আরও কার্যকারিতার জন্য ফাংশনে একটি অ্যারে এবং আকার পাস করুন৷
  • অস্থায়ী ভেরিয়েবল i নিন এবং এটিকে 0 এবং সর্বোচ্চ ভেরিয়েবলে সেট করুন এবং এটিকে 0 এ সেট করুন।
  • i থেকে একটি অ্যারের আকার পর্যন্ত লুপ শুরু করুন৷
  • লুপের ভিতরে, j সেট করুন i
  • আরেকটি লুপ শুরু করুন যা itis 0 হোক বা না হোক সংলগ্ন উপাদানগুলির সাথে সাবাররে গণনা করবে৷
  • লুপের ভিতরে, i-এর মান বাড়ান।
  • তাপ i-j+1 এ সেট করুন
  • সর্বোচ্চ টেম্পের চেয়ে কম কিনা চেক করুন তারপর সর্বোচ্চ টেম্পে সেট করুন।
  • যদি i এর সমান হয় কিনা তা পরীক্ষা করুন তারপর i এর মান বৃদ্ধি করুন
  • সর্বোচ্চ রিটার্ন করুন
  • ফলাফল প্রিন্ট করুন।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
//function to calculate maximum Length subarray with
// 0 or 1 difference between adjacent elements
int maximum_diff(int arr[], int size){
   int i = 0;
   int maximum = 0;
   while (i < size){
      int j = i;
      while (i+1 < size && (abs(arr[i] - arr[i + 1]) == 1 || abs(arr[i] - arr[i + 1]) == 0)){
         i++;
      }
      int temp = i - j + 1;
      if (maximum < temp){
         maximum = temp;
      }
      if(j == i){
         i++;
      }
   }
   return maximum;
}
int main(){
   int arr[] = { 2, 1, 5, 6, 3, 4, 7, 6};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Maximum length subarray with difference between adjacent elements as either 0 or 1
   are: "<< maximum_diff(arr, size);
}

ইনপুট

Maximum length subarray with difference between adjacent elements as either 0 or 1 are: 2

  1. C++ এ কুৎসিত সংখ্যা সহ একটি সাব-অ্যারের সর্বাধিক দৈর্ঘ্য

  2. C++ এ যেকোনো দুটি উপাদানের মধ্যে ন্যূনতম পার্থক্য খুঁজুন

  3. C++ এ একটি ম্যাট্রিক্সের যেকোনো কলামে সর্বাধিক পার্থক্য সহ জোড়া খুঁজুন

  4. C++ এ পণ্যের সমান LCM সহ সর্বাধিক দৈর্ঘ্যের সাবয়ারে