কম্পিউটার

C++-এ ডুপ্লিকেট সহ একটি সাজানো অ্যারেতে সমান (বা মধ্য) পয়েন্ট খুঁজুন


ধরুন আমাদের n উপাদান সহ একটি সাজানো অ্যারে আছে। অ্যারে সাজানো হয়. আমাদের খুঁজে বের করতে হবে একটি অ্যারেতে একটি এলিমেন্ট আছে কিনা যেখান থেকে ছোট এলিমেন্টের সংখ্যা বড় এলিমেন্টের সংখ্যার সমান। যদি সমান বিন্দুটি অ্যারেতে একাধিকবার উপস্থিত হয়, তাহলে প্রথম ঘটনার সূচকটি ফেরত দিন। যদি এমন কোন বিন্দু উপস্থিত না থাকে, তাহলে -1 ফেরত দিন। ধরুন মৌলগুলি হল A =[1, 1, 2, 3, 3, 3, 3, 3], তাহলে সমান বিন্দুটি সূচক 2 এ, মৌলটি হল A[2] =2। যেহেতু এটির একটি মাত্র ছোট আছে। উপাদান যা 1, এবং শুধুমাত্র একটি বড় উপাদান, সেটি হল 3।

আমরা এটিতে সমস্ত স্বতন্ত্র উপাদান সংরক্ষণ করার জন্য একটি সহায়ক অ্যারে তৈরি করব। যদি স্বতন্ত্র উপাদানগুলির গণনা সমান হয়, তবে আমরা কোন সমান বিন্দু খুঁজে পাব না, অন্যথায় মধ্যম উপাদানটি মধ্য-বিন্দু হবে।

উদাহরণ

#include<iostream>
using namespace std;
int searchEqualPoint(int arr[], int n) {
   int aux_arr[n];
   int i = 0, aux_index = 0;
   while (i < n) {
      aux_arr[aux_index++] = i++;
      while (i<n && arr[i] == arr[i-1])
         i++;
   }
   return (aux_index & 1)? aux_arr[aux_index>>1] : -1;
}
int main() {
   int arr[] = {1, 1, 2, 3, 3, 3, 3, 3};
   int n = sizeof(arr)/sizeof(arr[0]);
   int index = searchEqualPoint(arr, n);
   if (index != -1)
      cout << "Equal Point is: " << arr[index];
   else
      cout << "No Equal Point exists";
}

আউটপুট

Equal Point is: 2

  1. C++ ব্যবহার করে বন্ধনীর একটি স্ট্রিংয়ে একটি সমান পয়েন্ট খুঁজুন।

  2. C++ এ অনুমোদিত ডুপ্লিকেট সহ একটি অ্যারেতে একটি ফিক্সড পয়েন্ট খুঁজুন

  3. C++ এ প্রদত্ত অ্যারেতে একটি ফিক্সড পয়েন্ট (সূচকের সমান মান) খুঁজুন

  4. C++ এ একটি অ্যারেতে সর্বাধিক GCD সহ জোড়া খুঁজুন