সমস্যা বিবরণ
একটি আনসর্টেড অ্যারে দেওয়া আছে। আমাদের কাজ হল অ্যারেতে যেই জোড়ার (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