एक एरे समान डेटा प्रकार के तत्वों का एक संग्रह है। एक सॉर्टेड एरे एक एरे है जिसमें तत्व आरोही या अवरोही क्रम के अनुक्रम में संग्रहीत होते हैं।
विशिष्ट गिनती उन तत्वों की संख्या है जो समान नहीं हैं।
निरपेक्ष विशिष्ट गिनती तत्वों के निरपेक्ष मान की विशिष्ट गिनती है यानी चिह्न के बिना मान (अनसाइन्ड मान)।
इस प्रोग्राम में हम सॉर्टेड एरे में निरपेक्ष विशिष्ट गिनती ज्ञात करेंगे। यानी हम एरे के प्रत्येक तत्व के निरपेक्ष मान पर विचार करते हुए विशिष्ट मानों की संख्या गिनेंगे।
उदाहरण के लिए,
इनपुट: [-3, 0, 3, 6] आउटपुट: 3
एरे में 3 विशिष्ट निरपेक्ष मान हैं, तत्व 0, 3, और 6 हैं।
इसे हल करने के लिए हमारे पास तरीके हैं, विभिन्न तरीकों का उपयोग करके।
सेट का उपयोग करके
एक सेट में हमेशा विशिष्ट तत्व होते हैं। तो हम सेट में निरपेक्ष मानों की जांच करेंगे और यदि यह उपलब्ध नहीं है तो हम तत्व को सेट में जोड़ देंगे। और सेट का आकार वापस करेंगे।
एल्गोरिदम -
एरे के समान डेटा प्रकार का एक सेट बनाएं।
प्रत्येक तत्व का निरपेक्ष मान ज्ञात करें और तत्वों को एरे में संग्रहीत करें। सेट एक ही मान संग्रहीत करेगा भले ही कई मान मिलें।
सभी तत्व दर्ज होने के बाद। सेट की लंबाई वापस करें। यह एरे में विशिष्ट तत्वों की संख्या देगा।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[] = {-3, 0, 2, 6};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "Count of absolute distinct values : ";
unordered_set<int> s;
for (int i = 0; i < n; i++)
s.insert(abs(arr[i]));
int nof = s.size();
cout << nof;
return 0;
}
आउटपुट
Count of absolute distinct values : 4
एरे चेक और काउंट वेरिएबल का उपयोग करके
यह विधि सेट के बजाय केवल एक वेरिएबल का उपयोग करती है। हम आपको एरे के विशिष्ट तत्व को गिनने के लिए एक काउंट वेरिएबल देंगे।
उदाहरण
#include <iostream>
using namespace std;
int main() {
int arr[] = {-5, -1, 0, 5, 8};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "Count of absolute distinct values : ";
int count = n;
int i = 0, j = n - 1, sum = 0;
while (i < j) {
while (i != j && arr[i] == arr[i + 1])
count--, i++;
while (i != j && arr[j] == arr[j - 1])
count--, j--;
if (i == j)
break;
sum = arr[i] + arr[j];
if (sum == 0) {
count--;
i++, j--;
}
else if(sum < 0)
i++;
else
j--;
}
cout << count;
return 0;
}
आउटपुट
Count of absolute distinct values : 4