আমাদের যেকোন আকারের একটি অ্যারে দেওয়া হয়েছে এবং কাজটি হল প্রদত্ত অ্যারেতে 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