हमें N आकार के पूर्णांकों की एक सरणी दी गई है। सरणी में यादृच्छिक क्रम में पूर्णांक होते हैं। कार्य दो तत्वों के बीच अधिकतम अंतर ज्ञात करना है जैसे कि छोटी संख्या के बाद बड़ा तत्व दिखाई देता है। यानी Arr[j]-Arr[i] अधिकतम ऐसा है कि j>i.
इनपुट
Arr[] = { 2,1,3,8,3,19,21}.
आउटपुट −दो तत्वों के बीच अधिकतम अंतर इस प्रकार है कि छोटी संख्या के बाद बड़ा तत्व दिखाई देता है − 20
स्पष्टीकरण - अधिकतम अंतर 21 और 1 के बीच है और 21 सरणी में 1 के बाद दिखाई देता है।
इनपुट
Arr[] = {18, 2,8,1,2,3,2,6 }.
आउटपुट −दो तत्वों के बीच अधिकतम अंतर इस प्रकार है कि छोटी संख्या के बाद बड़ा तत्व दिखाई देता है - 6
स्पष्टीकरण - अधिकतम अंतर 8 और 2 के बीच है और 8 सरणी में 2 के बाद दिखाई देता है।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांकों की एक सरणी घोषित करें जिसमें आयत की भुजाओं के जोड़े हों।( Arr[] )
-
सरणी के आकार को संग्रहीत करने के लिए एक चर बनाएँ। (एन)
-
फ़ंक्शन maxArea(int arr[],int n) आयत के लिए अधिकतम क्षेत्र की गणना करने के लिए प्रयोग किया जाता है। यह एक इनपुट ऐरे और उसके आकार को तर्कों के रूप में लेता है।
-
मैक्सएरिया () के अंदर हमने एक ऐरे डिम [2] घोषित किया है, दो स्टोर उच्चतम दो पक्षों को सॉर्ट किए गए सरणी (अवरोही क्रम में) एआर [] को पार करने के बाद मिला।
-
जैसा कि arr[] को अवरोही क्रम में क्रमबद्ध किया गया है, उच्चतम 4 पक्ष शुरुआत में होने चाहिए। हम arr[] को पुनरावृत्त करेंगे ताकि पक्षों का एक जोड़ा मिल जाए।
-
डिम [] को पहले 0 से प्रारंभ करें।
-
जबकि लूप के अंदर हम शर्त रखते हैं कि यह j<2 तक जारी रहे कि dim[0] और dim[1] के लिए कोई मान नहीं मिला है या arr[] के अंत तक पहुंच गया है। (मैं<एन)।
-
यदि ऐसी भुजाओं का एक जोड़ा मिलता है, ( if(arr[i]==arr[i+1]) ), तो इसे dim[j] में संग्रहित करें और अगले पक्ष के लिए वृद्धि j करें।
-
परिणाम को dim[0] और dim[1] के गुणनफल के रूप में लौटाएं।
-
नोट - सॉर्ट (arr,n) गिरफ्तारी को अवरोही क्रम में सॉर्ट करना चाहिए।
उदाहरण
#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