কম্পিউটার

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


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

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

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

ব্যাখ্যা − 0 বা 1 এর মত পার্থক্য সহ একটি অ্যারেতে সন্নিহিত উপাদানগুলির পরবর্তী অংশ হল {2, 1}। অতএব, অনুগামীর সর্বোচ্চ দৈর্ঘ্য হল ২.

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

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

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

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

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//function to calculate the maximum difference
int maximum_adja(int arr[], int size){
   int temp[size], maximum = 0;
   for (int i=0; i<size; i++){
      temp[i] = 1;
   }
   for (int i=1; i<size; i++){
      for (int j=0; j<i; j++){
         if (abs(arr[i] - arr[j]) <= 1 && temp[i] < temp[j] + 1){
            temp[i] = temp[j] + 1;
         }
      }
   }
   for (int i=0; i<size; i++){
      if (maximum < temp[i]){
         maximum = temp[i];
      }
   }
   return maximum;
}
int main(){
   int arr[] = {1, 5, 3, 7, 8, 9, 2};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Maximum length subsequence with difference between adjacent elements as either 0
   or 1 is: "<<maximum_adja(arr, size);
   return 0;
}

আউটপুট

Maximum length subsequence with difference between adjacent elements as either 0 or 1 is: 3

  1. C++ এ নোড এবং পূর্বপুরুষের মধ্যে সর্বোচ্চ পার্থক্য

  2. C++ এ প্রদত্ত যোগফল সহ সর্বাধিক আকারের উপসেট

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

  4. C++ এ 0 বা n প্রতিটি মান সহ একটি ম্যাট্রিক্সের সর্বোচ্চ নির্ধারক