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

C++ में सरणी में समान तत्वों वाले इंडेक्स युग्मों की गिनती


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

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

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

इनपुट - 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.

  1. - C++ में अंतर K के बराबर वाले सभी विशिष्ट जोड़े गिनें

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

  1. - C++ में अनसॉर्टेड ऐरे में समान योग वाले सभी जोड़े प्रिंट करना

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

  1. - C++ में अभाज्य आवृत्ति वाले एरे तत्व

    एरे (Array) समान डेटा प्रकार के तत्वों का एक कंटेनर है। अभाज्य आवृत्ति (Prime Frequencies) का अर्थ है कि एरे के तत्व की घटनाओं की संख्या एक अभाज्य संख्या है। इसलिए, इन परिभाषाओं के आधार पर समस्या अभाज्य आवृत्ति वाले एरे तत्वों को खोजने की है। हमें एक स्ट्रिंग/एरे दिया गया है। हमें वर्णों की आवृत्ति