हमें N तत्वों की एक सरणी दी गई है। लक्ष्य उन इंडेक्स युग्मों (i, j) को ढूंढना है जिनका तत्व मान समान है जैसे कि i!=j। यानी Arr[i]=Arr[j] और i!=j। इसका उपयोग समान आकार के दस्ताने के युग्म बनाने के लिए किया जाता है। N दस्तानों में से केवल युग्मित दस्ताने बेचने के लिए उपयोगी हैं।
हम इसे 0<=i
आइए उदाहरणों से समझते हैं।
इनपुट - Arr[]= { 4,3,2,1,2,4 } N=6
आउटपुट - समान तत्वों वाले इंडेक्स युग्मों की संख्या: 2
व्याख्या -
काउंट=0, Arr[]= [ 4,3,2,1,2,4 ] Arr[0]=Arr[5], 0!=5, काउंट=1 Arr[0]=Arr[5]=-1 → [ -1,3,2,1,2,-1 ] Arr[2]=Arr[4], 2!=4, काउंट=2 Arr[2]=Arr[4]=-1 → [ -1,3,-1,1,-1,-1 ] अब सरणी में कोई नए युग्म नहीं जिनके मान समान हों, i!=j और > -1। कुल युग्म=2
इनपुट - Arr[]= { 2,2,2,2,2 } N=5
आउटपुट - समान तत्वों वाले इंडेक्स युग्मों की संख्या: 2
व्याख्या -
काउंट=0, Arr[]= [ 2,2,2,2,2 ] Arr[0]=Arr[1], 0!=1, काउंट=1 Arr[0]=Arr[1]=-1 → [ -1,-1,2,2,2 ] Arr[2]=Arr[3], 2!=3, काउंट=2 Arr[2]=Arr[3]=-1 → [ -1,-1,-1,-1,2 ] अब सरणी में कोई नए युग्म नहीं जिनके मान समान हों, i!=j और > -1। कुल युग्म=2
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम दस्ताने के आकार > 0 के लिए यादृच्छिक संख्याओं से आरंभ एक पूर्णांक सरणी Arr[] लेते हैं।
एक वेरिएबल n लेते हैं जो Arr[] की लंबाई स्टोर करता है।
फंक्शन countPairs(int arr[], int n) एक सरणी, उसकी लंबाई को इनपुट के रूप में लेता है और उन युग्मों को लौटाता है जिनका आकार समान है और इंडेक्स अलग हैं।
प्रत्येक युग्म के तत्व के लिए दो फॉर लूप का उपयोग करके सरणी को पार करते हैं।
बाहरी लूप 0<=i
जांचते हैं कि arr[i] और arr[j] धनात्मक हैं। यदि arr[i]==arr[j] तो काउंट बढ़ाते हैं। (लूप में सेट शर्तों के अनुसार i कभी j के बराबर नहीं होगा, तुलना करने की जरूरत नहीं)।
अब arr[i]=arr[j]=-1 सेट करते हैं, ताकि उन्हें आगे की तुलनाओं से हटाया जा सके।
सभी लूप के अंत में काउंट में दस्ताने के युग्मों की कुल संख्या होगी।
काउंट को परिणाम के रूप में लौटाते हैं।
उदाहरण
// उपरोक्त दृष्टिकोण का C++ कार्यान्वयन #include <bits/stdc++.h> using namespace std; // दस्ताने के युग्म बनाने के लिए समान तत्वों की गिनती करने का फंक्शन int countPairs(int arr[], int n){ int count = 0; for(int i=0;i0 && 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 <<"दस्ताने के युग्म (समान तत्व युग्म): "<<countPairs(arr, n); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
दस्ताने के युग्म (समान तत्व युग्म): 3.