আমাদের N আকারের পূর্ণসংখ্যার অ্যারে দেওয়া হয়েছে। অ্যারেটি এলোমেলো ক্রমে পূর্ণসংখ্যা নিয়ে গঠিত। কাজটি হল দুটি উপাদানের মধ্যে সর্বাধিক পার্থক্য খুঁজে বের করা যাতে ছোট সংখ্যার পরে বড় উপাদানটি উপস্থিত হয়। সেটা হল Arr[j]-Arr[i] সর্বাধিক যে j>i.
ইনপুট
Arr[] = { 2,1,3,8,3,19,21}.
আউটপুট −দুটি উপাদানের মধ্যে সর্বাধিক পার্থক্য যেমন বৃহত্তর উপাদানটি ছোট সংখ্যার পরে প্রদর্শিত হয় − 20
ব্যাখ্যা − সর্বাধিক পার্থক্য হল 21 এবং 1 এর মধ্যে এবং অ্যারেতে 1 এর পরে 21 প্রদর্শিত হয়৷
ইনপুট৷
Arr[] = {18, 2,8,1,2,3,2,6 }.
আউটপুট −দুটি উপাদানের মধ্যে সর্বাধিক পার্থক্য যেমন বড় উপাদানটি ছোট সংখ্যার পরে প্রদর্শিত হয় −6
ব্যাখ্যা − সর্বাধিক পার্থক্য হল 8 এবং 2 এর মধ্যে এবং অ্যারেতে 2 এর পরে 8 প্রদর্শিত হয়৷
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
পূর্ণসংখ্যার একটি অ্যারে ঘোষণা করুন যাতে আয়তক্ষেত্রের বাহুর জোড়া রয়েছে।( Arr[] )
-
অ্যারের আকার সংরক্ষণ করার জন্য একটি ভেরিয়েবল তৈরি করুন। (n)
-
আয়তক্ষেত্রের সর্বোচ্চ ক্ষেত্রফল গণনা করতে ফাংশন maxArea(int arr[],int n) ব্যবহার করা হয়। এটি আর্গুমেন্ট হিসাবে একটি ইনপুট অ্যারে এবং এর আকার নেয়৷
-
maxArea() এর ভিতরে আমরা একটি অ্যারে ডিম [2] ঘোষণা করেছি বাছাই করা অ্যারে অতিক্রম করার পরে পাওয়া দুটি দোকানের সর্বোচ্চ দুটি দিক (অবতরণ ক্রমে) arr[]।
-
যেমন arr[] অবরোহ ক্রমে সাজানো হয়, শুরুতে সর্বোচ্চ 4টি দিক থাকতে হবে। আমরা arr[] এমনভাবে পুনরাবৃত্তি করব যাতে এক জোড়া বাহু পাওয়া যায়।
-
প্রথমে 0 দিয়ে Dim[] শুরু করুন।
-
while লুপের ভিতরে আমরা শর্ত রাখি যে এটি j<2 পর্যন্ত চলতে থাকে যাতে dim[0] এবং dim[1] বা arr[]-এর শেষ পর্যন্ত কোনো মান পাওয়া যায় না। (i
-
যদি এই ধরনের এক জোড়া বাহু পাওয়া যায়, ( if(arr[i]==arr[i+1]) ), তাহলে এটিকে dim[j] এ সংরক্ষণ করুন এবং পরবর্তী পাশের জন্য j বৃদ্ধি করুন।
-
ম্লান[0] এবং ম্লান[1] এর গুণফল হিসাবে ফলাফলটি ফেরত দিন।
-
দ্রষ্টব্য − sort(arr,n) নামক ক্রমে arr সাজানোর কথা।
উদাহরণ
#include <stdio.h> int maxDiff(int arr[], int n){ // Maximum difference found so far int MD = arr[1] - arr[0]; // Minimum number visited so far 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; } /* Driver program to test above function */ int main(){ int arr[] = {2,5,7,3,4,12}; int n=6; // Function calling printf("Maximum difference is : %d ",maxDiff(arr, n)); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেThe maximum difference between two elements such that the larger element appears after the smaller number : 10