কম্পিউটার

সাবয়ারের সর্বাধিক দৈর্ঘ্য যেমন সাবয়ারের সমষ্টি এমনকি C++ এ


আমাদেরকে পূর্ণসংখ্যার Arr[] অ্যারে দেওয়া হয়েছে। লক্ষ্য হল Arr[]-এর দীর্ঘতম দৈর্ঘ্যের সাব্যারে খুঁজে বের করা, যার উপাদানগুলির যোগফল জোড়। অর্থাৎ, একটি সাবয়ারের উপাদানের যোগফল জোড় এবং সেই সাবঅ্যারে দৈর্ঘ্যে সবচেয়ে দীর্ঘ৷

ইনপুট − Arr[] ={ 2,3,5,2,6,7 }.

আউটপুট −সাবয়ারের সর্বোচ্চ দৈর্ঘ্য − 4

ব্যাখ্যা −সর্বোচ্চ দৈর্ঘ্যের সাবঅ্যারে হল { 5,2,6,7}। যোগফল 20 যা জোড়।

ইনপুট − Arr[] ={ 5,7,7,3,4 }।

আউটপুট − সাবয়ারের সর্বোচ্চ দৈর্ঘ্য − 4

ব্যাখ্যা − সর্বাধিক দৈর্ঘ্যের সাবঅ্যারে হল { 5,7,7,3}। যোগফল 22 যা জোড়।

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

  • পূর্ণসংখ্যা অ্যারে Arr[] পূর্ণসংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়।

  • অ্যারের দৈর্ঘ্য সংরক্ষণ করতে পরিবর্তনশীল আকার ব্যবহার করা হয়।

  • ফাংশন দৈর্ঘ্য (int arr[] ) হল অ্যারের সমষ্টি পরীক্ষা করা। লেং সাবারের দৈর্ঘ্য সংরক্ষণ করতে ব্যবহৃত হয়।

  • অ্যারের পুরো যোগফল গণনা করুন, এমনকি যদি অ্যারের দৈর্ঘ্য ফেরত দেয়, n.

  • এখন প্রথম উপাদান থেকে শুরু করে, পুরো অ্যারেটি অতিক্রম করুন, যদি একটি বিজোড় উপাদান পাওয়া যায় তবে arr[i] বাদ দিয়ে উভয় অর্ধের দৈর্ঘ্য খুঁজুন।

  • সাবয়ারের দৈর্ঘ্যের জন্য সর্বোচ্চ দৈর্ঘ্য ফেরত দিন।

উদাহরণ

#include<iostream<
int Length(int arr[], int n){
   int sum = 0, leng = 0;
   // if whole array is even
   for (int i = 0; i < n; i++)
      sum += arr[i];
   if (sum % 2 == 0) // total sum is already even
      return n;
   // Find an index i such the a[i] is odd
   // and compare length of both halfs excluding
   // a[i] to find max length subarray
   for (int i = 0; i < n; i++) {
      if (arr[i] % 2 == 1)
         leng = i>n-i-1?i:n-i-1;
   }
   return leng;
}
int main(){
   int Arr[] = { 1, 2, 6, 2, 4,2 };
   int size = 6;
   printf("Maximum length of subarray such that sum of the subarray is even: %d",Length(Arr, size));
return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Maximum length of subarray such that sum of the subarray is even : 5

  1. সর্বাধিক যোগফল সাবয়ারে যেমন C++ প্রোগ্রামে শুরু এবং শেষের মান একই

  2. সর্বাধিক পরবর্তী যোগফল যেমন C++ প্রোগ্রামে কোনো তিনটি পরপর নয়

  3. সর্বাধিক সাবয়ারের আকার, যেমন সেই আকারের সমস্ত সাবয়ারের যোগফল C++ প্রোগ্রামে k এর থেকে কম

  4. একটি বাইনারি ট্রিতে সর্বাধিক সাব-ট্রির যোগফল যেমন C++ প্রোগ্রামে সাব-ট্রিও একটি BST