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

C++ में विशिष्ट तत्वों वाली उप-सरणियों से बने युग्मों की गिनती


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

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

इनपुट - arr[] = {1,2,5,3 }

आउटपुट - विशिष्ट तत्वों वाली उप-सरणियों से बने युग्मों की गिनती - 6

व्याख्या - विशिष्ट तत्वों वाली उपसरणियाँ हैं: [1,2,5,3], संभावित युग्म (1,2), (1,3), (1,5), (2,5), (2,3), (5,3) कुल 6 युग्म।

इनपुट - arr[] = {1,2,1,2,3}

आउटपुट - विशिष्ट तत्वों वाली उप-सरणियों से बने युग्मों की गिनती - 5

व्याख्या - विशिष्ट तत्वों वाली उपसरणियाँ हैं -

[1,2] - युग्म: (1,2) 
[2,1] - युग्म: (2,1) 
[1,2,3] - युग्म: (1,2), (2,3), (1,3) 
कुल युग्म: 5

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

  • पूर्णांक सरणी को इनपुट के रूप में लें।
  • फ़ंक्शन distinct_pairs(int arr[], int size) सरणी लेता है और विशिष्ट तत्वों वाली उप-सरणियों से बने युग्मों की गिनती वापस करता है।
  • प्रारंभिक गिनती 0 लें। चर start=end=0 लें।
  • विंडो में तत्वों को चिह्नित करने के लिए एक वेक्टर check(size, false) लें।
  • लूप WHILE शुरू करें जब तक start size से कम है
  • लूप के अंदर, एक और लूप WHILE शुरू करें जब तक start size से कम है AND check[arr[start]] = 0 तब count को start - end सेट करें और check[arr[start]] को true सेट करें और start को 1 से बढ़ाएं।
  • लूप WHILE शुरू करें जब तक end start से कम है AND start size के बराबर नहीं है AND check[arr[start]] = true तब check[arr[end]] = false सेट करें और end को 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 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. - C++ में सरणी में विशिष्ट तत्वों की गिनती करें

    हमें किसी भी आकार की एक असॉर्टेड सरणी दी गई है जिसमें दोहराव वाले तत्व हैं और कार्य सरणी में विशिष्ट तत्वों की संख्या की गणना करना है। सरणी एक प्रकार की डेटा संरचना है जो एक ही प्रकार के तत्वों का एक निश्चित आकार का अनुक्रमिक संग्रह संग्रहीत कर सकती है। एक सरणी का उपयोग डेटा के संग्रह को संग्रहीत

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

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

  1. - C++ में सॉर्टेड एरे में निरपेक्ष विशिष्ट गिनती

    एक एरे समान डेटा प्रकार के तत्वों का एक संग्रह है। एक सॉर्टेड एरे एक एरे है जिसमें तत्व आरोही या अवरोही क्रम के अनुक्रम में संग्रहीत होते हैं। विशिष्ट गिनती उन तत्वों की संख्या है जो समान नहीं हैं। निरपेक्ष विशिष्ट गिनती तत्वों के निरपेक्ष मान की विशिष्ट गिनती है यानी चिह्न के बिना मान (अनसाइन्ड मा