हमें पूर्णांकों की एक सरणी दी गई है। सरणी में समान तत्वों की कई घटनाएं हैं। यहां कार्य सरणी में किन्हीं दो समान तत्वों के बीच अधिकतम दूरी ढूंढना है। हम सरणी के बाएं से शुरू करके प्रत्येक तत्व को चुनेंगे। फिर उस समान संख्या की अंतिम घटना ढूंढेंगे और सूचकांकों के बीच का अंतर संग्रहीत करेंगे। अब यदि यह अंतर अधिकतम है तो इसे लौटाएं।
इनपुट
Arr[] = { 1, 2, 4, 1, 3, 4, 2, 5, 6, 5 } आउटपुट
सरणी में समान तत्व की दो घटनाओं के बीच अधिकतम दूरी: 4
व्याख्या
सूचकांकों के साथ दोहराने वाली संख्याएं:
1. 1, पहला सूचकांक 0, अंतिम सूचकांक 3 दूरी = 3-0-1 = 2 2. 2, पहला सूचकांक 1, अंतिम सूचकांक 6 दूरी = 6-1-1 = 4 3. 5, पहला सूचकांक 7, अंतिम सूचकांक 9 दूरी = 9-7-1 = 1 समान तत्व की दो घटनाओं के बीच अधिकतम दूरी: 4
इनपुट
Arr[] = { 10, 20, 1, 10, 10, 21, 12, 0 } आउटपुट
सरणी में समान तत्व की दो घटनाओं के बीच अधिकतम दूरी: 3
व्याख्या
सूचकांकों के साथ दोहराने वाली संख्याएं:
1. 10 पहला सूचकांक 0, अंतिम सूचकांक 4 दूरी = 4-0-1 = 3 समान तत्व की दो घटनाओं के बीच अधिकतम दूरी: 3
नोट - यदि इनपुट सरणी में कोई दोहराने वाली संख्या नहीं है, तो -1 लौटाएं।
उपयोग किया गया दृष्टिकोण
हम दोहराने वाली संख्याओं वाली एक पूर्णांक सरणी Arr[] लेते हैं।
फ़ंक्शन maxDistance(int arr[], int n) समान तत्व की दो घटनाओं के बीच अधिकतम दूरी की गणना के लिए उपयोग किया जाता है।
हम चर maxD को -1 से प्रारंभ करते हैं।
फॉर लूप के अंदर सरणी के पूर्णांकों को शुरुआत से पार करते हैं।
नेस्टेड फॉर लूप में शेष तत्वों को पार करते हैं और पुनरावृत्तियों की खोज करते हैं (if (arr[i] == arr[j]))।
यदि सत्य है तो सूचकांकों को घटाकर संख्याओं के बीच का अंतर निकालें (temp = 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; } // ड्राइवर कोड int main(){ int Arr[] = {1, 2, 4, 1, 3, 4, 2, 5, 6, 5}; printf("सरणी में समान तत्व की दो घटनाओं के बीच अधिकतम दूरी: %d", maxDistance(Arr, 10)); return 0; } आउटपुट
उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:
सरणी में समान तत्व की दो घटनाओं के बीच अधिकतम दूरी: 4