এই সমস্যাতে, একটি অ্যারে দেওয়া থাকে। আমাদের কাজ হল অ্যারে থেকে তিনটি উপাদান (triplet) বেছে নেওয়া যেন তাদের যোগফল সর্বোচ্চ হয়।
উদাহরণ
ইনপুট: array = {4, 6, 1, 2}
আউটপুট: 12 (4+6+2)
দুটি পদ্ধতি
১. ব্রুট ফোর্স (O(n³))
তিনটি নেস্টেড লুপ দিয়ে সব ট্রিপলেট চেক করুন।
২. সর্টিং পদ্ধতি (O(n log n)) - কার্যকর
অ্যারে সর্ট করে শেষ তিনটি উপাদানের যোগফলই সর্বোচ্চ ট্রিপলেট যোগফল হবে।
C++ প্রোগ্রাম উদাহরণ (সর্টিং পদ্ধতি)
#include <bits/stdc++.h>
using namespace std;
int maxSum(int arr[], int n) {
sort(arr, arr + n);
return arr[n - 1] + arr[n - 2] + arr[n - 3];
}
int main() {
int arr[] = {3, 5, 9, 1, 2, 8, 7};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "The maximum triplet sum of the array is " << maxSum(arr, n);
return 0;
}
আউটপুট
The maximum triplet sum of the array is 24