কম্পিউটার

C++ এ সাজানো বিন্যাসে সবচেয়ে বড় জোড়ের যোগফল খুঁজুন


এই সমস্যায়, আমাদেরকে একটি arr[] দেওয়া হয়েছে যা N সাজানো না হওয়া উপাদান নিয়ে গঠিত। আমাদের কাজ হল একটি সাজানো বিন্যাসে সবচেয়ে বড় জোড়ের যোগফল খুঁজে পাওয়া .

আমরা একটি জোড়া খুঁজে পাব যার যোগফল সর্বাধিক৷

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

Input : arr[] = {7, 3, 9, 12, 1}
Output : 21

ব্যাখ্যা

Pair with largest sum, (9, 12). Sum = 21

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

সমস্যার একটি সহজ সমাধান হল অ্যারের সর্বোচ্চ এবং দ্বিতীয় সর্বোচ্চ উপাদানের জোড়া তৈরি করা।

এর জন্য আমরা অ্যারের প্রথম এবং দ্বিতীয় উপাদানের সাথে অ্যারের সর্বাধিক এবং দ্বিতীয়ম্যাক্স উপাদানগুলি শুরু করব, বড়টি হল সর্বাধিক এবং অন্যটি সেকেন্ডম্যাক্স৷

এখন, সূচক 2 থেকে (n-1) অ্যারের মাধ্যমে লুপ করুন। এবং তাদের সর্বাধিক এবং দ্বিতীয়ম্যাক্স মানের সাথে তুলনা করুন।

যদি arr[i] max এর থেকে বড় হয়, secondMax =max এবং max =arr[i]।

যদি arr[i] সেকেন্ডম্যাক্সের চেয়ে বড় হয়, সেকেন্ডম্যাক্স =arr[i]।

এবং লুপের শেষে, (max + secondMax) ফেরত দিন।

উদাহরণ

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

#include<iostream>
using namespace std;
int findPairLargestSum(int arr[], int n){
   int max, secondMax;
   if (arr[0] > arr[1]){
      max = arr[0];
      secondMax = arr[1];
   }
   else{
      max = arr[1];
      secondMax = arr[0];
   }
   for (int i = 2; i<n; i ++){
      if (arr[i] > max){
         secondMax = max;
         max = arr[i];
      }
      else if (arr[i] > secondMax && arr[i] != max) 
         secondMax = arr[i];
   }
   return (max + secondMax);
}
int main(){
   int arr[] = {12, 34, 10, 6, 40};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout<<"The sum of elements of pair with max sum is "<<findPairLargestSum(arr, n);
   return 0;
}

আউটপুট

The sum of elements of pair with max sum is 74

  1. C++ এ একটি গাছের মধ্যে সবচেয়ে বড় সাবট্রি সমষ্টি খুঁজুন

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

  3. C++ এ STL ব্যবহার করে একটি অ্যারের উপাদানের যোগফল কিভাবে খুঁজে পাওয়া যায়?

  4. একটি অ্যারের সবচেয়ে বড় উপাদান খুঁজে পেতে C++ প্রোগ্রাম