एक सरणी एक ही डेटा प्रकार के तत्वों का एक संग्रह है। एक क्रमबद्ध सरणी एक सरणी है जिसमें तत्वों को आरोही या अवरोही क्रम में संग्रहीत किया जाता है।
विशिष्ट गणना उन तत्वों की संख्या है जो समान नहीं हैं।
एब्सोल्यूट डिफरेंट काउंट तत्वों के निरपेक्ष मान की अलग गिनती है यानी बिना चिह्न वाले तत्व (अहस्ताक्षरित मान)।
इस कार्यक्रम में हम एक क्रमबद्ध सरणी में पूर्ण विशिष्ट गणना पाएंगे। यानी अगर सरणी के प्रत्येक तत्व के निरपेक्ष मान पर विचार किया जाता है तो हम अलग-अलग मानों की संख्या की गणना करेंगे।
उदाहरण के लिए,
Input : [-3 , 0 , 3 , 6 ] Output : 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