কম্পিউটার

C++ এ সংলগ্ন উপাদান বিবেচনা না করে অ্যারেতে সর্বোচ্চ সেট বিট সমষ্টি


এই সমস্যায়, আমাদেরকে পূর্ণসংখ্যার একটি অ্যারে [] দেওয়া হয়েছে। আমাদের কাজ হল C++ এ সংলগ্ন উপাদানগুলি বিবেচনা না করে অ্যারেতে সর্বাধিক সেট বিট সমষ্টি গণনা করার জন্য একটি প্রোগ্রাম তৈরি করা।

সমস্যা বর্ণনা - এখানে, আমাদের একটি অ্যারে আছে []। আমাদের প্রতিটি সংখ্যার জন্য সেট বিটের সংখ্যা খুঁজে বের করতে হবে। তারপর, আমরা অ্যারের সংলগ্ন উপাদানগুলিতে সর্বাধিক সেট বিট সমষ্টি খুঁজে পাব। যেমন a[i] + a[i+2] ….

এর জন্য সর্বাধিক যোগফল

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

ইনপুট

arr[] = {1, 4, 6, 7}

আউটপুট

4

ব্যাখ্যা

বাইনারি আকারে উপাদানের সাথে অ্যারে

arr[] = {01, 100, 101, 111}
Bit count array = {1, 1, 2, 3}

বিকল্প বিট গণনা,

arr[0] + arr[2] = 1 + 2 = 3
arr[1] + arr[3] = 1 + 3 = 4

সর্বোচ্চ যোগফল =4.

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

এই সমস্যাটি সমাধান করার জন্য, আমরা কেবল সংখ্যায় সেট বিটের সংখ্যা খুঁজে পাব। এবং বিকল্প জুটি খুঁজুন যেখানে সেট বিটের সর্বাধিক গণনা রয়েছে।

সর্বাধিক যোগফল 0 দিয়ে শুরু হওয়া বা 1 দিয়ে শুরু হওয়া অ্যারের জন্য হবে। তাই, আমাদের কেবল তাদের দুটির ক্ষেত্রে পরীক্ষা করতে হবে।

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

উদাহরণ

#include<iostream>
using namespace std;
int countSetBit(int n){
   int setBits = 0;
   while(n) {
      setBits++;
      n = n & (n - 1);
   }
   return setBits;
}
int findMaxBitAltSubArray(int arr[], int n){
   int EvenSum = countSetBit(arr[0]);
   int OddSum = 0;
   for (int i = 1; i < n; i++){
      if(i % 2 == 0){
         EvenSum += countSetBit(arr[i]);
      } else {
         OddSum += countSetBit(arr[i]);
      }
   }
   if(EvenSum >= OddSum){
      return EvenSum;
   }
   return OddSum;
}
int main() {
   int arr[] = {1, 4, 6, 7};
   int n = 4;
   cout<<"The maximum set bit sum in the array without considering adjacent elements is "<<findMaxBitAltSubArray(arr, n);
   return 0;
}

আউটপুট

The maximum set bit sum in the array without considering adjacent elements
is 4

  1. বৃত্তাকার অ্যারেতে সর্বাধিক যোগফল যাতে C++ এ দুটি উপাদান সংলগ্ন থাকে না

  2. C++ এ একটি অ্যারেতে সর্বোচ্চ ভারসাম্যের যোগফল

  3. C++ এ বারবার বিয়োগ করে সব উপাদান একই করার পর সর্বাধিক অ্যারের যোগফল খুঁজুন

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