हमें पूर्णांकों की एक सरणी दी गई है। सरणी में समान तत्वों की कई घटनाएं होती हैं। यहाँ कार्य सरणी के किन्हीं दो समान तत्वों के बीच अधिकतम दूरी ज्ञात करना है। हम बाईं ओर से शुरू होने वाले सरणी से प्रत्येक तत्व को चुनेंगे। फिर हम उसी संख्या की अंतिम घटना पाएंगे और इंडेक्स के बीच अंतर को स्टोर करेंगे। अब अगर यह अंतर ज्यादा हो तो वापस कर दें।
इनपुट
Arr[] = { 1,2,4,1,3,4,2,5,6,5 }
आउटपुट −सरणी में एक ही तत्व की दो घटनाओं के बीच अधिकतम दूरी − 4
स्पष्टीकरण - अनुक्रमित के साथ दोहराई जाने वाली संख्याएं -
1. 1, first index 0, last index 3 distance=3-0-1=2 2. 2, first index 1, last index 6 distance=6-1-1=4 3. 5, first index 7, last index 9 distance=9-7-1=1 Maximum distance between two occurrences of same element : 4
इनपुट
Arr[] = { 10,20,1,10,10,21,12,0 }
आउटपुट −सरणी में एक ही तत्व की दो घटनाओं के बीच अधिकतम दूरी -3
स्पष्टीकरण - अनुक्रमित के साथ दोहराई जाने वाली संख्याएं -
1. 10 first index 0, last index 4 distance=4-0-1=3 Maximum distance between two occurrences of same element : 3
नोट - अगर इनपुट ऐरे में कोई रिपीटिंग नंबर नहीं है, तो रिटर्न -1
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम एक पूर्णांक सरणी लेते हैं जिसमें दोहराई जाने वाली संख्याएं Arr[]
. के रूप में होती हैं -
फ़ंक्शन maxDistance(int arr[],int n) का उपयोग एक ही तत्व की दो घटनाओं के बीच अधिकतम दूरी की गणना करने के लिए किया जाता है।
-
हम वैरिएबल maxD को -1 से इनिशियलाइज़ करते हैं।
-
लूप के अंदर शुरुआत से ही पूर्णांकों की सरणी को पार करें।
-
लूप के लिए नेस्टेड में शेष तत्वों को पार करें और यदि कोई हो तो दोहराव की खोज करें। (अगर (गिरफ्तारी [i] ==गिरफ्तारी [जे])।
-
यदि यह सत्य है तो सूचकांकों को घटाकर संख्याओं के बीच के अंतर की गणना करें। (अस्थायी=j-i-1)
-
यदि यह मान अब तक अधिकतम पाया गया है, तो इसे maxD में संग्रहीत करें
-
संपूर्ण सरणी को पार करने के बाद maxD लौटाएं।
उदाहरण
#include <stdio.h> #include <math.h> int maxDistance(int arr[],int n){ int size = n; int maxD = -1; for (int i = 0; i < n - 1; i++) for (int j = i + 1; j < n; j++) if (arr[i] == arr[j]){ int temp=abs(j-i-1); maxD = maxD>temp?maxD:temp; } return maxD; } // Driver code int main(){ int Arr[] = {1,2,4,1,3,4,2,5,6,5}; printf("Maximum distance between two occurrences of same element in array:%d", maxDistance(Arr,10) ); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Maximum distance between two occurrences of same element in array − 4