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