কম্পিউটার

অ্যারেতে এমন একটি উপাদান আছে কিনা তা খুঁজুন যার মান C++ এ অ্যারের যোগফলের অর্ধেক


এই সমস্যায়, আমাদেরকে সাজানো অনন্য মানগুলির একটি অ্যারে দেওয়া হয়েছে। আমাদের কাজ হল অ্যারেতে এমন একটি উপাদান আছে কিনা তা খুঁজে বের করা যার মান অ্যারের যোগফলের অর্ধেক হয় .

সমস্যা বর্ণনা: অ্যারে অ্যারের জন্য, আমাদের অ্যারেতে x উপাদানটি খুঁজে বের করতে হবে যাতে অ্যারের সমস্ত উপাদানের যোগফল 2*X এর সমান হয়।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট: arr[] ={2, 4, 5, 6, 7}

আউটপুট: না

ব্যাখ্যা:

যোগফল =2 + 4 + 5 + 6 + 7 =24

কোনো উপাদান পাওয়া যায়নি৷

সমাধান পদ্ধতি:

সমস্যাটি সমাধান করার জন্য, আমাদের কেবল উপাদানগুলি খুঁজে বের করতে হবে যা অ্যারের সমস্ত উপাদানের যোগফলের অর্ধেক৷

অ্যালগরিদম:

ধাপ 1: অ্যারের সমস্ত উপাদানের যোগফল খুঁজুন।

ধাপ 2: যোগফলের মান বিজোড় হলে -1 ফেরত দিন।

ধাপ 3: যোগফলের মান জোড় হলে, x*2 =যোগফলের মতো x এলিমেন্ট খুঁজুন।

পদক্ষেপ 4: যদি উপাদান পাওয়া যায়, 1 রিটার্ন করুন।
ধাপ 5: যদি উপাদান না পাওয়া যায় -1 রিটার্ন।

উপাদান অনুসন্ধানের জন্য, আমরা বাইনারী অনুসন্ধান অ্যালগরিদম ব্যবহার করতে পারি এটি সাজানো হয়েছে।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
using namespace std;

int checkForElement(int array[], int n) {

   int arrSum = 0;
   for (int i = 0; i < n; i++)
      arrSum += array[i];

   if (arrSum % 2)
   return -1;

   int start = 0;
   int end = n - 1;
   while (start <= end)
   {
      int mid = start + (end - start) / 2;
      if ( ( 2 * array[mid] ) == arrSum)
         return array[mid];      
      else if (( 2 * array[mid] ) > arrSum)
         end = mid - 1;      
      else
         start = mid + 1;
   }

   return -1;
}

int main() {

   int array[] = { 4, 5, 6, 7, 9 };
   int n = sizeof(array) / sizeof(array[0]);
   int x = checkForElement(array, n);
   if(x != -1)
    cout<<"Element found, value is "<<x;
   else
    cout<<"Element not found!";
   return 0;
}

আউটপুট −

Element not found!

  1. C++-এ অ্যারের প্রতিটি উপাদানের জন্য নিকটতম বৃহত্তর মান খুঁজুন

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

  3. C++-এ অ্যারের প্রতিটি উপাদানের সারপাসার কাউন্ট খুঁজুন

  4. C++ এ একটি সমষ্টি অ্যারে ধাঁধা?