हमें एक सरणी दी गई है 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