কম্পিউটার

C++ এ একটি সাজানো অ্যারেতে পরম স্বতন্ত্র গণনা?


একটি অ্যারে একই ডেটা টাইপের উপাদানগুলির একটি সংগ্রহ। একটি বাছাই করা অ্যারে একটি বিন্যাস যাতে উপাদানগুলি ঊর্ধ্বমুখী বা অবরোহের ক্রমানুসারে সংরক্ষিত থাকে৷

স্বতন্ত্র গণনা হল উপাদানের সংখ্যা যা একই নয়।

পরম স্বতন্ত্র গণনা হল উপাদানগুলির পরম মানের স্বতন্ত্র গণনা অর্থাৎ চিহ্ন ছাড়া উপাদান (অস্বাক্ষরিত মান)।

এই প্রোগ্রামে আমরা একটি সাজানো অ্যারেতে পরম স্বতন্ত্র গণনা পাব। অর্থাৎ অ্যারের প্রতিটি উপাদানের পরম মান বিবেচনা করা হলে আমরা স্বতন্ত্র মানের সংখ্যা গণনা করব।

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

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

  1. C++ এ সাজানো বাইনারি অ্যারেতে 1 এর সংখ্যা গণনা করুন

  2. C++ এ ঘূর্ণিত সাজানো অ্যারে II-তে অনুসন্ধান করুন

  3. C++ এ রোটেটেড সর্টেড অ্যারেতে রোটেশন কাউন্ট খুঁজুন

  4. সাজানো অ্যারে বাস্তবায়নের জন্য C++ প্রোগ্রাম