আমাদের একটি অসর্টেড অ্যারে দেওয়া আছে যেকোনো আকারের যার মধ্যে পুনরাবৃত্তিমূলক উপাদান রয়েছে, এবং আমাদের কাজ হল অ্যারেতে স্বতন্ত্র উপাদানগুলির সংখ্যা গণনা করা।
উদাহরণ
ইনপুট− int arr[] = {1, 1, 2, 3, 3, 4, 4} আউটপুট − গণনা 4
ব্যাখ্যা − দেওয়া অ্যারেতে 4টি স্বতন্ত্র উপাদান রয়েছে: 1, 2, 3, 4। কিন্তু অ্যারের আকার 7 কারণ এতে পুনরাবৃত্তিমূলক উপাদান রয়েছে। আমাদের কাজ হল ডুপ্লিকেট সরিয়ে তারপর অ্যারে উপাদান গণনা করা।
ইনপুট − int arr[] = {1, 2, 3, 4, 5, 5, 5, 5} আউটপুট − গণনা 5
ব্যাখ্যা − দেওয়া অ্যারেতে 5টি স্বতন্ত্র উপাদান রয়েছে: 1, 2, 3, 4, 5। কিন্তু অ্যারের আকার 8 কারণ এতে পুনরাবৃত্তিমূলক উপাদান রয়েছে। আমাদের কাজ হল ডুপ্লিকেট সরিয়ে তারপর অ্যারে উপাদান গণনা করা।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
sort() ফাংশন ব্যবহার করে
- একটি অ্যারে তৈরি করুন, যেমন
arr[] length()ফাংশন দিয়ে অ্যারের দৈর্ঘ্য গণনা করুনsortফাংশন কল করুন এবং অ্যারে ও আকার প্যারামিটার হিসেবে পাস করুন- একটি অস্থায়ী ভেরিয়েবল নিন যা স্বতন্ত্র উপাদানগুলির গণনা সংরক্ষণ করবে
i = 0থেকেi < sizeপর্যন্ত লুপ শুরু করুন- লুপের ভিতরে,
while i < size-1 && arr[i] == arr[i+1]চালান - while-এর ভিতরে
i-এর মান বৃদ্ধি করুন - for-লুপের ভিতরে
count-এর মান বৃদ্ধি করুন countফেরত দিন- ফলাফল প্রিন্ট করুন
সর্টিং ছাড়া
- একটি অ্যারে তৈরি করুন, যেমন
arr[] length()ফাংশন দিয়ে অ্যারের দৈর্ঘ্য গণনা করুন- একটি অস্থায়ী ভেরিয়েবল নিন যা স্বতন্ত্র উপাদানগুলির গণনা সংরক্ষণ করবে
i = 1থেকেi < sizeপর্যন্ত লুপ শুরু করুন- লুপের ভিতরে
j = 0সেট করুন এবংj = 0থেকেj < iপর্যন্ত আরেকটি লুপ শুরু করুন - এই লুপের ভিতরে, যদি
arr[i] == arr[j]হয় তবেbreakকরুন - যদি
i == jহয় তবেcount1 বৃদ্ধি করুন countফেরত দিন- ফলাফল প্রিন্ট করুন
উদাহরণ
সর্টিংসহ
#include <algorithm>
#include <iostream>
using namespace std;
int distinct_elements(int arr[], int n) {
// অ্যারে সর্ট করুন
sort(arr, arr + n);
// সর্টেড অ্যারে ট্রাভার্স করুন
int count = 0;
for (int i = 0; i < n; i++) {
// ডুপ্লিকেট পাওয়ার সময় ইনডেক্স এগিয়ে নিন
while (i < n - 1 && arr[i] == arr[i + 1]) {
i++;
}
count++;
}
return count;
}
// Main ফাংশন
int main() {
int arr[] = { 3, 6, 5, 8, 2, 3, 4 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << "count is " << distinct_elements(arr, n);
return 0;
}
আউটপুট
যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব −
count is 6
উদাহরণ
সর্টিং ছাড়া
#include <iostream>
using namespace std;
int countDistinct(int a[], int size) {
int i, j, count = 1;
for (i = 1; i < size; i++) {
for (j = 0; j < i; j++) {
if (a[i] == a[j]) {
break;
}
}
if (i == j) {
count++;
}
}
return count;
}
// Main ফাংশন
int main() {
int a[] = { 3, 6, 5, 8, 2, 3, 4 };
int size = sizeof(a) / sizeof(a[0]);
cout << "count is " << countDistinct(a, size);
return 0;
}
আউটপুট
যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব −
count is 6