সমস্যা বিবরণ
একটি অ্যারে দেওয়া থাকলে, প্রতিটি আডজেসেন্ট জোড়ার (arr[i], arr[i+1]) মধ্যে সবচেয়ে ছোট ও দ্বিতীয় ছোট মানগুলো বের করুন (যা বোঝায় সে দুটি মানই) এবং তাদের সমের সর্বোচ্চ মান খুঁজে বের করুন।
নোট: দুটি এলিমেন্টের জোড়ার ক্ষেত্রে, ছোট এবং দ্বিতীয় ছোট অর্থাৎ উভয় মানই।
সমাধানের পদ্ধতি
- যদি N < 2 হয়, -1 রিটার্ন করুন।
res = arr[0] + arr[1]ইনিশিয়ালাইজ করুন।- i = 1 থেকে N-2 পর্যন্ত লুপ:
res = max(res, arr[i] + arr[i+1])। resরিটার্ন করুন।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int pairWithMaxSum(int arr[], int N) {
if (N < 2) return -1;
int res = arr[0] + arr[1];
for (int i = 1; i < N - 1; i++)
res = max(res, arr[i] + arr[i + 1]);
return res;
}
int main() {
int arr[] = {4, 3, 1, 5, 6};
int N = sizeof(arr) / sizeof(int);
cout << pairWithMaxSum(arr, N) << endl;
return 0;
}
আউটপুট
11
ব্যাখ্যা
অ্যারে: [4,3,1,5,6]
আডজেসেন্ট জোড়া: (4,3)=7, (3,1)=4, (1,5)=6, (5,6)=11 → সর্বোচ্চ 11
জটিলতা
- সময়: O(N)
- স্থান: O(1)