Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में एक सरणी में समान तत्वों के साथ सूचकांक जोड़े की संख्या


हमें N तत्वों की एक सरणी दी गई है। लक्ष्य सूचकांक जोड़े (i, j) को खोजना है, जिनका तत्व मान समान है जैसे कि i!=j। यानी, Arr[i]=Arr[j] और i!=j. इसका उपयोग समान आकार के दस्तानों के जोड़े बनाने के लिए किया जाता है। N दस्ताने में से केवल युग्मित दस्ताने ही बेचने के लिए उपयोगी होते हैं।

हम 0<=i0 &&Arr[j]>0, and i!=j. अगर सही है, तो ऐसे जोड़ियों की संख्या बढ़ाएँ और इन तत्वों को -1 (Arr[i]=Arr[j]=-1) के रूप में बनाएं ताकि उन्हें आगे की जाँच से हटाया जा सके क्योंकि किसी भी दस्तानों का आकार -1 नहीं हो सकता।

आइए उदाहरणों से समझते हैं।

इनपुट - अर []={ 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.

  1. C++ में k के बराबर अंतर वाले सभी अलग-अलग युग्मों की गणना करें

    इस ट्यूटोरियल में, हम k के बराबर अंतर वाले अलग-अलग जोड़े खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक पूर्णांक सरणी और मान k प्रदान किया जाएगा। हमारा काम उन सभी अलग-अलग युग्मों को गिनना है जिनका अंतर k है। उदाहरण #include<iostream> using namespace std; int count_diffK(int arr[]

  1. C++ में समान योग के साथ सभी जोड़ियों को एक क्रमबद्ध सरणी में प्रिंट करें

    इस समस्या में, हमारे पास एक अवर्गीकृत सरणी है और हमें इस सरणी के भीतर उन सभी युग्मों को प्रिंट करना है जिनका योग समान है। आइए समस्या को समझने के लिए एक उदाहरण लेते हैं - Input: array = [12, 13, 20, 5] Output: [12, 13] and [20, 5] have sum 25. इस समस्या को हल करने के लिए, हमें समान योग के जोड़े खोज

  1. सी ++ में प्रमुख आवृत्तियों वाले ऐरे तत्व?

    सरणी समान डेटा प्रकार के तत्वों का एक कंटेनर है। प्राइम फ़्रीक्वेंसी इसका मतलब है कि सरणी के तत्व की घटना की संख्या एक प्रमुख संख्या है। तो, इन परिभाषाओं के आधार पर अभाज्य आवृत्तियों वाले सरणी तत्वों को खोजने में समस्या। हमें सरणी की एक स्ट्रिंग दी गई है। हमें वर्णों की आवृत्ति का पता लगाना होगा