কম্পিউটার

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


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

এক ধরণের ডেটা স্ট্রাকচার অ্যারে করে যা একই ধরণের উপাদানগুলির একটি নির্দিষ্ট-আকারের অনুক্রমিক সংগ্রহ সঞ্চয় করতে পারে। একটি অ্যারে ডেটা সংগ্রহের জন্য ব্যবহার করা হয়, তবে একই ধরণের ভেরিয়েবলের সংগ্রহ হিসাবে একটি অ্যারেকে ভাবতে প্রায়ই এটি বেশি কার্যকর।

উদাহরণস্বরূপ

Input− int arr_1[] = {1, 2, 3, 4}
      Int arr_2[] = {1, 5, 6, 7, 8}
Output − count is 3

ব্যাখ্যা − প্রদত্ত arr_1-এ আমাদের উপাদান রয়েছে 1, 2, 3 এবং 4 এবং arr_2 তে আমাদের 1, 5, 6,7 এবং 8 রয়েছে। উপাদান 1 উভয় অ্যারেতে উপস্থিত রয়েছে তাই, আমরা এটি গণনা করব না এবং তাই গণনা 3 হয়ে যায়।

Input − int arr_1[] = {10, 20, 30, 40, 50}
      Int arr_2[] = {10, 20, 30, 60}
Output − count is 2

ব্যাখ্যা − প্রদত্ত arr_1-এ আমাদের 10, 20, 30, 40 এবং 50 উপাদান রয়েছে এবং arr_2 তে আমাদের 10, 20, 30 এবং 60 রয়েছে। 10, 20 এবং 30 উপাদান দুটি অ্যারেতে উপস্থিত রয়েছে তাই আমরা গণনা করব না তাদের এবং তাই গণনা 2 হয়ে যায়।

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • দুটি অ্যারে তৈরি করুন আসুন বলি, arr_1[] এবং arr_2[>

  • length() ফাংশন ব্যবহার করে উভয় অ্যারের দৈর্ঘ্য গণনা করুন যা একটি অ্যারের উপাদান অনুযায়ী একটি পূর্ণসংখ্যা মান প্রদান করবে।

  • একটি অস্থায়ী পরিবর্তনশীল নিন যা শুধুমাত্র প্রথম অ্যারেতে উপস্থিত উপাদানগুলির গণনা সংরক্ষণ করবে৷

  • একটি ক্রমবিহীন মানচিত্র তৈরি করুন চলুন বলা যাক

  • i থেকে 0 এর জন্য লুপ শুরু করুন যতক্ষণ না আমি arr_1

    এর আকারের চেয়ে কম হয়
  • 1

    সহ [arr_1[i]] বৃদ্ধি করুন
  • i থেকে 0 এর জন্য আরেকটি লুপ শুরু করুন যতক্ষণ না আমি arr_2 এর আকারের চেয়ে কম হয়

  • লুপের ভিতরে, দেখুন up.find(arr_2[i])!=up.end() এবং up[arr_2[i]]!=0

  • 1

    দ্বারা [arr_2[i]] হ্রাস
  • i থেকে 0 এর জন্য আরেকটি লুপ শুরু করুন যতক্ষণ না আমি arr_1

    এর আকারের চেয়ে কম হয়
  • লুপের ভিতরে, দেখুন [arr_1[i]!=0

    কিনা
  • তারপর, গণনা 1 দ্বারা বৃদ্ধি করুন এবং সেট আপ করুন [arr_1[i]] =0

  • গণনা ফেরত দিন

  • ফলাফল প্রিন্ট করুন।

উদাহরণ

#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;
   // map to store frequency of elements present in a
   unordered_map<int, int> up;
   for (int i = 0; i < m; i++){
      up[arr_1[i]]++;
   }
   // check if the elements of b
   // is present in b or not
   for (int i = 0; i < n; i++)
   if (up.find(arr_2[i]) != up.end() && up[arr_2[i]] != 0){
      up[arr_2[i]]--;
   }
   // count the elements of a whose
   // frequency is more than b
   for (int i = 0; i < m; i++) {
      if (up[arr_1[i]] != 0){
         result++;
         up[arr_1[i]] = 0;
      }
   }
   return result;
}
// Main function
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. C++ এ একটি অ্যারের মধ্যে ক্ষুদ্রতম এবং দ্বিতীয় ক্ষুদ্রতম উপাদান খুঁজুন

  2. C++ এ একটি অ্যারেতে প্রথম, দ্বিতীয় এবং তৃতীয় ন্যূনতম উপাদানগুলি খুঁজুন

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

  4. একটি অ্যারেতে ইনভার্সন গণনা করার জন্য C++ প্রোগ্রাম