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

सी ++ में अलग-अलग तत्व उप-सरणी द्वारा गठित जोड़े की गणना करें

हमें एक सरणी दी गई है arr[] जिसमें पूर्णांक तत्व हैं। लक्ष्य उन जोड़ों की गिनती का पता लगाना है जो एआर के उप-सरणी के तत्वों द्वारा बनाई जा सकती हैं [] जैसे कि प्रत्येक सबरे में केवल अलग तत्व होते हैं। यदि सरणी [1,2,2,3,3] है तो केवल अलग-अलग तत्वों वाले उप-सरणी [1,2] और [ 2,3] होंगे। और जोड़े (1,2) और (2,3) होंगे इसलिए जोड़े की संख्या 2 है।

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

इनपुट - गिरफ्तारी [] ={1,2,5,3 }

आउटपुट − अलग तत्व उप-सरणी द्वारा गठित युग्मों की संख्या है − 6

स्पष्टीकरण -विभिन्न तत्वों के साथ उप-सरणी हैं:[ 1,2,5, 3], संभावित जोड़े (1,2), (1,3), (1,5), (2,5), (2,3), (5,3)

कुल 6 जोड़े।

इनपुट - गिरफ्तारी [] ={1,2,1,2,3}

आउटपुट − अलग-अलग एलिमेंट सब-एरे से बनने वाले युग्मों की संख्या है − 5

स्पष्टीकरण − अलग-अलग तत्वों के साथ उप-सरणी हैं -

[1,2] - pairs: (1,2)
[2,1] - pairs: (2,1)
[1,2,3] - pairs : (1,2), (2,3), (1,3)
Total pairs : 5

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • इनपुट के रूप में एक पूर्णांक सरणी लें।

  • फ़ंक्शन अलग_पेयर (int arr [], int आकार) सरणी लेता है और अलग तत्व उप-सरणी द्वारा गठित गणना जोड़े देता है।

  • प्रारंभिक गणना को 0 के रूप में लें। चर प्रारंभ करें =अंत =0।

  • विंडो में तत्वों को चिह्नित करने के लिए एक वेक्टर चेक (आकार, गलत) लें।

  • प्रारंभ लूप जबकि प्रारंभ होने तक आकार से छोटा होता है

  • लूप के अंदर, एक और लूप शुरू करें जब तक कि आकार से कम शुरू न हो जाए और [arr [स्टार]] =0 की जांच करें, फिर गिनती को स्टार्ट-एंड के रूप में सेट करें और चेक [arr [स्टार्ट]] को सही के रूप में सेट करें और शुरुआत को 1 से बढ़ाएं। /पी>

  • लूप प्रारंभ करें, जबकि प्रारंभ से कम अंत तक प्रारंभ करें और प्रारंभ आकार के बराबर नहीं है और जांचें[arr[start]] =true फिर check[arr[end]] =false सेट करें और अंत को 1 से बढ़ाएं।

  • गिनती वापस करें

  • परिणाम प्रिंट करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int distinct_pairs(int arr[], int size){
   int count = 0;
   int start = 0;
   int end = 0;
   vector<bool> check(size, false);
   while (start < size){
      while (start < size && !check[arr[start]]){
         count += (start - end);
         check[arr[start]] = true;
         start++;
      }
      while (end < start && (start != size && check[arr[start]])){
         check[arr[end]] = false;
         end++;
      }
   }
   return count;
}
int main(){
   int arr[] = {5, 1, 8, 2, 1, 7, 9, 1};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of pairs formed by distinct element sub-arrays are: "<< distinct_pairs(arr, size);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of pairs formed by distinct element sub-arrays are: 17

  1. सी ++ में एक सरणी में अलग-अलग तत्वों की गणना करें

    हमें दोहराए जाने वाले तत्वों वाले किसी भी आकार की एक क्रमबद्ध सरणी दी जाती है और कार्य एक सरणी में अलग-अलग तत्वों की गिनती की गणना करना है। एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत कर सकता है। डेटा के संग्रह को संग्रह

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

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

  1. सी ++ में एक क्रमबद्ध सरणी में पूर्ण विशिष्ट गणना?

    एक सरणी एक ही डेटा प्रकार के तत्वों का एक संग्रह है। एक क्रमबद्ध सरणी एक सरणी है जिसमें तत्वों को आरोही या अवरोही क्रम में संग्रहीत किया जाता है। विशिष्ट गणना उन तत्वों की संख्या है जो समान नहीं हैं। एब्सोल्यूट डिफरेंट काउंट तत्वों के निरपेक्ष मान की अलग गिनती है यानी बिना चिह्न वाले तत्व (अहस्ताक