কম্পিউটার টিউটোরিয়াল

C++-এ প্রথম অ্যারেতে থাকা কিন্তু দ্বিতীয় অ্যারেতে না থাকা উপাদান গণনা

আমাদের দুটি পূর্ণসংখ্যা অ্যারে দেওয়া আছে, এবং আমাদের কাজ হল প্রথম অ্যারেতে থাকা কিন্তু দ্বিতীয় অ্যারেতে না থাকা উপাদানগুলির সংখ্যা গণনা করা।

উদাহরণ

ইনপুট− 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 হয়
  • তবে, count 1 বৃদ্ধি করুন এবং 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
  1. সি++ প্রোগ্রাম: অ্যারেতে সর্বনিম্ন ও দ্বিতীয় সর্বনিম্ন উপাদান খুঁজে বের করা

  2. সি++ প্রোগ্রাম: অ্যারেতে প্রথম, দ্বিতীয় ও তৃতীয় সর্বনিম্ন উপাদান খুঁজে বের করা

  3. সি++ প্রোগ্রাম: প্রথম অ্যারেতে থাকা কিন্তু দ্বিতীয় অ্যারেতে নেই এমন উপাদানগুলো খুঁজে বের করা

  4. C++ প্রোগ্রাম: অ্যারেতে ইনভার্শন কাউন্ট করা