একটি পূর্ণসংখ্যার অ্যারে (সাইজ N) দেওয়া আছে। যেই উপাদানটি একাধিকবার রয়েছে, তার প্রথম ও শেষ ইনডেক্সের পার্থক্য বের করতে হবে। এমন সব উপাদানের মধ্যে সর্বোচ্চ পার্থক্য খুঁজে বের করা লক্ষ্য।
উদাহরণ
ইনপুট: Arr[] = { 2, 1, 3, 1, 3, 2, 5, 5 }
আউটপুট: সর্বোচ্চ পার্থক্য - 5
ব্যাখ্যা:
(2,2): ইনডেক্স ০ এবং ৫ → পার্থক্য ৫ (1,1): ইনডেক্স ১ এবং ৩ → পার্থক্য ২ (3,3): ইনডেক্স ২ এবং ৪ → পার্থক্য ২ (5,5): ইনডেক্স ৬ এবং ৭ → পার্থক্য ১ সর্বোচ্চ = ৫
ইনপুট: Arr[] = { 2, 2, 3, 4, 8, 3, 4, 4, 8, 7 }
আউটপুট: ৪
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- পুনরাবৃত্তি সংখ্যা ধারণকারী অ্যারে Arr[]।
- maxDifference(int Arr[], int n) ফাংশনটি সর্বোচ্চ পার্থক্য হিসাব করে।
- maxD = 0 দিয়ে ইনিশিয়ালাইজ।
- দুটি নেস্টেড লুপ: বাইরের লুপ i=0 থেকে n-2, ভিতরের j=i+1 থেকে n-1।
- যদি arr[i] == arr[j] এবং (j-i) > maxD হয়, তবে maxD = j-i।
- শেষে maxD রিটার্ন।
C প্রোগ্রাম উদাহরণ
#include <stdio.h>
int maxDifference(int arr[], int n) {
int maxD = 0;
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
if (arr[i] == arr[j] && (j - i) > maxD)
maxD = j - i;
return maxD;
}
int main() {
int Arr[] = {1, 4, 1, 3, 3, 5, 4, 5, 2};
int N = sizeof(Arr) / sizeof(Arr[0]);
printf("সর্বোচ্চ পার্থক্য: %d", maxDifference(Arr, N));
return 0;
}
আউটপুট
সর্বোচ্চ পার্থক্য: 5