একটি পূর্ণসংখ্যার অ্যারে দেওয়া আছে। দুটি উপাদানের মধ্যে সর্বোচ্চ পার্থক্য খুঁজে বের করতে হবে এমনভাবে যাতে বড় উপাদানটি ছোট উপাদানের পরে অবস্থান করে (Arr[j] - Arr[i] সর্বোচ্চ, শর্ত j > i)।
উদাহরণ
ইনপুট: Arr[] = { 2, 1, 3, 8, 3, 19, 21 }
আউটপুট: সর্বোচ্চ পার্থক্য - 20
ব্যাখ্যা: ২১ এবং ১-এর মধ্যে পার্থক্য ২০, এবং ২১, ১-এর পরে আছে।
ইনপুট: Arr[] = { 18, 2, 8, 1, 2, 3, 2, 6 }
আউটপুট: ৬
ব্যাখ্যা: ৮ এবং ২-এর মধ্যে পার্থক্য ৬, ৮, ২-এর পরে আছে।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- অ্যারে Arr[] এবং সাইজ n।
- maxDiff(int arr[], int n) ফাংশনটি O(n) সময়ে পার্থক্য বের করে।
- MD = arr[1] - arr[0] (প্রাথমিক পার্থক্য), min = arr[0] (ন্যূনতম ভিজিটেড)।
- লুপ i=1 থেকে n-1: যদি arr[i] - min > MD হয় তবে MD আপডেট। যদি arr[i] < min হয় তবে min আপডেট।
- একক পাসে সমাধান।
C প্রোগ্রাম উদাহরণ
#include <stdio.h>
int maxDiff(int arr[], int n) {
int MD = arr[1] - arr[0];
int min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] - min > MD)
MD = arr[i] - min;
if (arr[i] < min)
min = arr[i];
}
return MD;
}
int main() {
int arr[] = {2, 5, 7, 3, 4, 12};
int n = 6;
printf("সর্বোচ্চ পার্থক্য: %d", maxDiff(arr, n));
return 0;
}
আউটপুট
সর্বোচ্চ পার্থক্য: 10