আমাদের দুটি পূর্ণসংখ্যা অ্যারে দেওয়া আছে, এবং আমাদের কাজ হল প্রথম অ্যারেতে থাকা কিন্তু দ্বিতীয় অ্যারেতে না থাকা উপাদানগুলির সংখ্যা গণনা করা।
উদাহরণ
ইনপুট− int arr_1[] = {1, 2, 3, 4} Int arr_2[] = {1, 5, 6, 7, 8} আউটপুট − গণনা 3
ব্যাখ্যা − দেওয়া arr_1-এ উপাদান 1, 2, 3, 4 রয়েছে এবং arr_2-এ 1, 5, 6, 7, 8 রয়েছে। উপাদান 1 উভয় অ্যারেতেই রয়েছে তাই আমরা এটিকে গণনা করব না এবং গণনা হবে 3।
ইনপুট − int arr_1[] = {10, 20, 30, 40, 50} Int arr_2[] = {10, 20, 30, 60} আউটপুট − গণনা 2
ব্যাখ্যা − দেওয়া arr_1-এ উপাদান 10, 20, 30, 40, 50 রয়েছে এবং arr_2-এ 10, 20, 30, 60 রয়েছে। উপাদান 10, 20, 30 উভয় অ্যারেতেই রয়েছে তাই আমরা এগুলো গণনা করব না এবং গণনা হবে 2।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- দুটি অ্যারে তৈরি করুন, যেমন
arr_1[]এবংarr_2[] length()ফাংশন দিয়ে দুটি অ্যারের দৈর্ঘ্য গণনা করুন- একটি অস্থায়ী ভেরিয়েবল নিন যা শুধুমাত্র প্রথম অ্যারেতে থাকা উপাদানগুলির গণনা সংরক্ষণ করবে
- একটি
unordered_mapতৈরি করুন, যেমনup i = 0থেকেi < arr_1এর আকার পর্যন্ত লুপ শুরু করুনup[arr_1[i]]1 বৃদ্ধি করুন- আরেকটি লুপ
i = 0থেকেi < arr_2এর আকার পর্যন্ত শুরু করুন - লুপের ভিতরে, যদি
up.find(arr_2[i]) != up.end()এবংup[arr_2[i]] != 0হয় up[arr_2[i]]1 কমান- আরেকটি লুপ
i = 0থেকেi < arr_1এর আকার পর্যন্ত শুরু করুন - লুপের ভিতরে, যদি
up[arr_1[i]] != 0হয় - তবে,
count1 বৃদ্ধি করুন এবংup[arr_1[i]] = 0সেট করুন countফেরত দিন- ফলাফল প্রিন্ট করুন
উদাহরণ কোড
#include <iostream>
#include <unordered_map>
using namespace std;
int elements_count(int arr_1[], int arr_2[], int m, int n) {
bool f = false;
int result = 0;
// 'a'-তে থাকা উপাদানগুলির ফ্রিকোয়েন্সি সংরক্ষণ করার ম্যাপ
unordered_map<int, int> up;
for (int i = 0; i < m; i++) {
up[arr_1[i]]++;
}
// চেক করুন 'b'-এর উপাদানগুলো 'a'-তে আছে কিনা
for (int i = 0; i < n; i++)
if (up.find(arr_2[i]) != up.end() && up[arr_2[i]] != 0) {
up[arr_2[i]]--;
}
// 'a'-এর সেই উপাদান গণনা করুন যাদের ফ্রিকোয়েন্সি 'b'-তে বেশি
for (int i = 0; i < m; i++) {
if (up[arr_1[i]] != 0) {
result++;
up[arr_1[i]] = 0;
}
}
return result;
}
// Main ফাংশন
int main() {
int arr_1[] = { 2, 4, 4, 6, 6, 6, 8, 9 };
int arr_2[] = { 2, 2, 4, 6, 6 };
int m = sizeof(arr_1) / sizeof(arr_1[0]);
int n = sizeof(arr_2) / sizeof(arr_2[0]);
cout << "count is " << elements_count(arr_1, arr_2, m, n);
return 0;
}
আউটপুট
যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব −
count is 4