इस समस्या में, हमें एक arr [] दिया जाता है जिसमें N अवर्गीकृत तत्व होते हैं। हमारा काम है बिना क्रमबद्ध सरणी में सबसे बड़ा युग्म योग खोजना ।
हमें एक ऐसा जोड़ा मिलेगा जिसका योग अधिकतम होगा।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input : arr[] = {7, 3, 9, 12, 1} Output : 21
स्पष्टीकरण -
Pair with largest sum, (9, 12). Sum = 21
समाधान दृष्टिकोण
समस्या का एक सरल समाधान है सरणी के अधिकतम और दूसरे अधिकतम तत्वों का एक युग्म बनाना।
इसके लिए हम एरे के पहले और दूसरे एलिमेंट के साथ ऐरे के मैक्स और सेकेंडमैक्स एलिमेंट को इनिशियलाइज़ करेंगे, बड़ा एक मैक्स है और दूसरा सेकेंडमैक्स है।
अब, अनुक्रमणिका 2 से (n-1) तक सरणी के माध्यम से लूप करें। और उनकी तुलना अधिकतम और सेकेंडमैक्स मानों से करें।
अगर गिरफ्तारी [i] अधिकतम से अधिक है, तो दूसरा अधिकतम =अधिकतम और अधिकतम =गिरफ्तारी [i]।
अगर arr[i], secondMax से बड़ा है, तो secondMax =arr[i].
और लूप के अंत में, (अधिकतम + सेकंडमैक्स) लौटाएं।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम
#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