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

अधिकतम योग इस प्रकार है कि कोई भी दो तत्व C++ में आसन्न नहीं हैं

इस समस्या में, हमें एक ऐरे एरर [] दिया जाता है। हमारा कार्य अधिकतम योग ज्ञात करने के लिए एक प्रोग्राम बनाना है जैसे कि C++ में कोई भी दो तत्व आसन्न न हों।

समस्या का विवरण

हमें सरणी से अनुक्रम का अधिकतम योग खोजने की आवश्यकता है जैसे कि योग अनुक्रम से कोई भी 2 संख्याएं सरणी में आसन्न नहीं हैं।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

arr[] = {5, 1, 3, 7, 9, 2, 5}

आउटपुट

22

स्पष्टीकरण

Taking sum sequence from index 0 with alternate elements : 5 + 3 + 9 + 5 = 22
Taking sum sequence from index 1 with alternate elements : 1 + 7 + 2 = 10

समाधान दृष्टिकोण

समस्या को हल करने के लिए, हम केवल सरणी के सभी तत्वों पर लूप करेंगे और दो रकम बनाए रखेंगे। sumVar1 और sumVar2, sumVar1 में वर्तमान तत्व के साथ योग शामिल होगा और sumVar2 में वर्तमान तत्व के बिना योग शामिल होगा।

प्रत्येक पुनरावृत्ति के साथ, हम sumVar2 को max(sumVar1, sumVar2) के रूप में अपडेट करेंगे। और फिर sumVar1 को अपडेट करें। लूप के अंत में, sumVar2 आवश्यक राशि देगा।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,

#include<iostream>
using namespace std;
int findmaximum(int a, int b){
   if(a > b)
      return a;
      return b;
}
int findMaxSumWOAdjecent(int arr[], int N){
   int maxSum1 = arr[0];
   int maxSum2 = 0;
   int temp;
   for (int i = 1; i < N; i++) {
      temp = findmaximum(maxSum1, maxSum2);
      maxSum1 = maxSum2 + arr[i];
      maxSum2 = temp;
   }
   return (findmaximum(maxSum1, maxSum2));
}
int main(){
   int arr[] = {5, 1, 3, 7, 9, 2, 5};
   int N = sizeof(arr) / sizeof(arr[0]);
   cout<<"The maximum sum such that no two elements are adjacent is "<<findMaxSumWOAdjecent(arr, N);
   return 0;
}

आउटपुट

The maximum sum such that no two elements are adjacent is 22

  1. बाइनरी ट्री में नोड्स का अधिकतम योग जैसे कि C++ प्रोग्राम में डायनामिक प्रोग्रामिंग का उपयोग करते हुए कोई भी दो आसन्न नहीं हैं

    इस समस्या में, हमें एक बाइनरी ट्री दिया जाता है जिसमें प्रत्येक नोड का एक मान होता है। हमारा काम बाइनरीट्री में नोड्स की अधिकतम राशि को खोजने के लिए एक प्रोग्राम बनाना है जैसे कि कोई भी दो आसन्न न हो। डायनामिक प्रोग्रामिंग का उपयोग करना। समस्या का विवरण - हम योग को अधिकतम करने के लिए बाइनरी ट्री के

  1. सर्कुलर सरणी में अधिकतम योग जैसे कि कोई भी दो तत्व सी ++ में आसन्न नहीं हैं

    इस समस्या में, हमें एक वृत्ताकार सरणी cirArr[] दी गई है। हमारा काम सर्कुलर सरणी में अधिकतम योग खोजने के लिए एक प्रोग्राम बनाना है जैसे कि कोई भी दो तत्व सी ++ में आसन्न नहीं हैं। समस्या का विवरण वृत्ताकार सरणी के लिए, हमें सरणी के तत्वों का अधिकतम योग ज्ञात करना होगा जैसे कि आसन्न तत्वों को नहीं लि

  1. C++ में दो सरणियों में अधिकतम योग पथ

    समस्या कथन दो क्रमबद्ध सरणियों को देखते हुए ऐसे सरणियों में कुछ सामान्य तत्व हो सकते हैं। किसी भी सरणी की शुरुआत से किसी भी दो सरणी के अंत तक पहुंचने के लिए अधिकतम योग पथ का योग ज्ञात करें। हम एक सरणी से दूसरे सरणी में केवल सामान्य तत्वों पर स्विच कर सकते हैं। ध्यान दें कि सामान्य तत्वों का एक ही अ