Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में एक क्रमबद्ध सरणी में सबसे बड़ा जोड़ी योग खोजें

इस समस्या में, हमें एक 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

  1. सी ++ में एक पेड़ में सबसे बड़ा सबट्री योग खोजें

    इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम पेड़ में सबसे बड़ा सबट्री योग खोजना है। समस्या का विवरण: बाइनरी ट्री में सकारात्मक और साथ ही नकारात्मक मान होते हैं। और हमें उस सबट्री को खोजने की जरूरत है जिसमें नोड्स की अधिकतम राशि हो। समस्या को समझने के लिए एक उदाहरण लेते हैं,

  1. सी ++ में एसटीएल का उपयोग कर ऐरे के तत्वों का योग कैसे प्राप्त करें?

    यहां हम देखेंगे कि किसी सरणी के सभी तत्वों का योग कैसे ज्ञात किया जाए। तो अगर सरणी [12, 45, 74, 32, 66, 96, 21, 32, 27] की तरह है, तो योग होगा:405। तो यहाँ हमें इस समस्या को हल करने के लिए जमा () फ़ंक्शन का उपयोग करना होगा। यह फ़ंक्शन विवरण शीर्षलेख फ़ाइल के अंदर मौजूद है। उदाहरण #include<iostre

  1. सी ++ प्रोग्राम एक ऐरे का सबसे बड़ा तत्व खोजने के लिए

    एक सरणी में कई तत्व होते हैं और एक सरणी में सबसे बड़ा तत्व वह होता है जो अन्य तत्वों से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा तत्व है और यह इंडेक्स 2 पर है। किसी सरणी के सबसे बड़े तत्व को खोजने का प्रोग्राम इस प्रकार दिया गया है। उदाहरण #include <iostream> u