हमें N तत्वों की एक सरणी दी गई है। लक्ष्य सूचकांक जोड़े (i, j) को खोजना है, जिनका तत्व मान समान है जैसे कि i!=j। यानी, Arr[i]=Arr[j] और i!=j. इसका उपयोग समान आकार के दस्तानों के जोड़े बनाने के लिए किया जाता है। N दस्ताने में से केवल युग्मित दस्ताने ही बेचने के लिए उपयोगी होते हैं।
हम 0<=i
आइए उदाहरणों से समझते हैं।
इनपुट - अर []={ 4,3,2,1,2,4 } एन=6
आउटपुट − समान तत्वों वाले सूचकांक युग्मों की संख्या − 2
स्पष्टीकरण -
count=0, Arr[]= [ 4,3,2,1,2,4 ] Arr[0]=Arr[5], 0!=5, count=1 Arr[0]=Arr[5]=-1 → [ -1,3,2,1,2,-1 ] Arr[2]=Arr[4], 2!=4, count=2 Arr[2]=Arr[4]=-1 → [ -1,3,-1,1,-1,-1 ] Now array has no new pairs with equal values, i!=j and > -1. Total pairs=2
इनपुट - अर []={ 2,2,2,2,2 } एन=5
आउटपुट − समान तत्वों वाले सूचकांक युग्मों की संख्या − 2
स्पष्टीकरण -
count=0, Arr[]= [ 2,2,2,2,2 ] Arr[0]=Arr[1], 0!=1, count=1 Arr[0]=Arr[1]=-1 → [ -1,-1,2,2,2 ] Arr[2]=Arr[3], 2!=3, count=2 Arr[2]=Arr[3]=-1 → [ -1,-1,-1,-1,2 ] Now array has no new pairs with equal values, i!=j and > -1. Total pairs=2
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम एक पूर्णांक सरणी लेते हैं Arr[] दस्ताने के आकार के लिए यादृच्छिक संख्याओं के साथ प्रारंभ किया गया> 0.
-
एक वैरिएबल n लें जो Arr[] की लंबाई को स्टोर करता है।
-
फंक्शन काउंटपेयर्स (int arr[], int n) एक ऐरे लेता है, इसकी लंबाई इनपुट के रूप में और समान आकार और अलग-अलग इंडेक्स वाले जोड़े लौटाता है।
-
जोड़ी के प्रत्येक तत्व के लिए लूप के लिए दो का उपयोग करके ट्रैवर्स सरणी।
-
0<=i
-
जांचें कि क्या गिरफ्तारी [i] और गिरफ्तारी [जे] सकारात्मक हैं। अगर गिरफ्तारी [i] ==गिरफ्तारी [जे] तो वेतन वृद्धि गिनती। (मैं लूप में निर्धारित शर्तों के अनुसार कभी भी j के बराबर नहीं होऊंगा, तुलना करने की कोई आवश्यकता नहीं है)।
-
अब उन्हें आगे की तुलना से हटाने के लिए arr[i]=arr[j]=-1 सेट करें।
-
सभी लूपों के अंत में गिनती में दस्ताने के जोड़े की कुल संख्या होगी।
-
परिणाम के रूप में गिनती लौटाएं।
उदाहरण
// C++ implementation of above approach #include <bits/stdc++.h> using namespace std; // Function to count equal elements to make pair of gloves int countPairs(int arr[], int n){ int count = 0; for(int i=0;i<n-1;i++){ for(int j=i+1;j<n;j++){ if(arr[i]==arr[j] && arr[i]>0 && arr[j]>0){ count++; arr[i]=arr[j]=-1; } } } return count; } int main(){ int arr[] = { 1,2,4,2,1,2,4 }; int n = sizeof(arr) / sizeof(arr[0]); cout <<"Pair of gloves ( Equal element pairs ):"<<countPairs(arr, n); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Pair of gloves ( Equal element pairs ):3.