इस समस्या में, हमें n पूर्णांकों से युक्त एक सरणी arr[] दी गई है। हमारा कार्य C++ में किन्हीं दो भिन्न संख्याओं के सूचकांक के बीच अधिकतम अंतर खोजने के लिए एक प्रोग्राम बनाना है।
कोड विवरण - यहां, हमें सरणी के पूर्णांक मानों के सूचकांक के बीच अधिकतम अंतर खोजने की जरूरत है, यह देखते हुए कि दो पूर्णांक भिन्न हैं।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
arr[] = {4, 1, 3, 2, 1, 2, 4}
आउटपुट
5
स्पष्टीकरण
इंडेक्स 0, एलिमेंट 4 और इंडेक्स 5, एलिमेंट 2 के बीच का अंतर.
समाधान दृष्टिकोण
हम सरणी से अद्वितीय तत्वों के सूचकांक के बीच अधिकतम संभव अंतर खोजने की कोशिश करेंगे।
हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; int maximum(int a, int b){ if(a > b) return a; return b; } int CalcMaxIndDiff(int a[], int n) { int indDiff1 = 0, indDiff2 = 0; int i = 0; while(i < (n - 1)){ if(a[0] != a[i]){ indDiff2 = i; break; } i++; } i = (n - 1) ; while(i > 0){ if(a[0] != a[i]){ indDiff1 = i; break; } i--; } return maximum(indDiff1, indDiff2); } int main() { int arr[] = { 4, 1, 3, 2, 1, 2, 4 }; int n = 7; cout<<"The maximum difference between the index of any two different numbers is "<<CalcMaxIndDiff(arr, n); return 0; }
आउटपुट
The maximum difference between the index of any two different numbers is 5