কম্পিউটার টিউটোরিয়াল

অনসর্টেড অ্যারেতে সর্বোচ্চ জোড়া যোগফল বের করা (C++)


সমস্যা বিবরণ

একটি আনসর্টেড অ্যারে দেওয়া আছে। আমাদের কাজ হল অ্যারেতে যেই জোড়ার (pair) যোগফল সর্বোচ্চ তা বের করা।

উদাহরণ

ইনপুট: arr[] = {7, 3, 9, 12, 1}
আউটপুট: 21
ব্যাখ্যা: জোড়া (9, 12), যোগফল = 21

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

অ্যারেতে সর্বোচ্চ (max) এবং দ্বিতীয় সর্বোচ্চ (secondMax) উপাদান বের করে যোগফল করা। O(n) সময়ে সম্ভব।

প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

int findPairLargestSum(int arr[], int n) {
    int max = arr[0], secondMax = arr[1];
    if(secondMax > max) swap(max, secondMax);
    for(int i=2;i max){ secondMax=max; max=arr[i]; }
        else if(arr[i] > secondMax) secondMax=arr[i];
    }
    return max + secondMax;
}

int main() {
    int arr[] = {12, 34, 10, 6, 40};
    cout << "সর্বোচ্চ জোড়া যোগফল: " << findPairLargestSum(arr, 5);
    return 0;
}

আউটপুট

সর্বোচ্চ জোড়া যোগফল: 74
  1. C++-এ বাইনারি ট্রির সর্ববৃহৎ সাবট্রি সম বের করুন

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

  3. C++-এ STL ব্যবহার করে অ্যারে এলিমেন্টগুলোর যোগফল (Sum) বের করা

  4. অ্যারেতে সবচেয়ে বড় এলিমেন্ট (Largest Element) বের করার C++ প্রোগ্রাম