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

C++ में एक उल्टे त्रिकोण में अधिकतम पथ योग

इस समस्या में हमें एक उल्टे त्रिभुज के रूप में संख्याएँ दी जाती हैं। हमारा काम एक प्रोग्राम बनाना है जो उल्टे त्रिकोण में अधिकतम पथ योग ढूंढेगा।

उल्टा त्रिकोण संख्या का रूप एक व्यवस्था है जब पहली पंक्ति में n तत्व होते हैं, दूसरी n-1, और इसी तरह।

यहां, हमें अधिकतम योग ज्ञात करना है जो प्रत्येक पंक्ति में एक तत्व जोड़कर 3 प्राप्त किया जा सकता है।

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

इनपुट -

5 1 9
 3 6
  2

आउटपुट − 17

स्पष्टीकरण - यहाँ, मैंने पथ में अधिकतम संभव तत्वों को ध्यान में रखते हुए, अंतिम पंक्ति से शीर्ष पंक्ति तक का रास्ता खोज लिया है।

इस समस्या को हल करने के लिए, हम गतिशील प्रोग्रामिंग दृष्टिकोण का उपयोग करेंगे, जैसा कि हम न्यूनतम लागत पथ समस्याओं के मामले में लागू करते हैं। यहां, हम नीचे से शुरू करेंगे और फिर वह रास्ता खोजेंगे जो अधिकतम योग देता है।

इससे पहले, हम उल्टे त्रिकोण को एक नियमित मैट्रिक्स के रूप में मानेंगे, बाईं ओर की सभी संख्याओं को स्थानांतरित करके और शेष स्थानों में 0 जोड़ देंगे।

उदाहरण

एक उल्टे त्रिभुज में अधिकतम पथ योग ज्ञात करने का कार्यक्रम -

#include <iostream>
using namespace std;
#define N 3
int findMaxPathSumInvertedTriangle(int matrix[][N]){
   int maxSum = 0;
   for (int i = N - 2; i >= 0; i--) {
      for (int j = 0; j < N - i; j++) {
         if (j - 1 >= 0)
            matrix[i][j] += max(matrix[i + 1][j], matrix[i + 1][j - 1]);
         else
            matrix[i][j] += matrix[i + 1][j];
            maxSum = max(maxSum, matrix[i][j]);
      }
   }
   return maxSum;
}
int main(){
   int invertedTriangle[N][N] = {
      {5, 1, 9},
      {3, 6, 0},
      {2, 0, 0}};
   cout<<"The maximum path sum is "<<findMaxPathSumInvertedTriangle(invertedTriangle);
   return 0;
}

आउटपुट

The maximum path sum is 17

  1. सी++ में पथ योग III

    मान लीजिए कि हमने एक बाइनरी ट्री दिया है जिसमें प्रत्येक नोड में एक पूर्णांक कुंजी होती है। हमें उन पथों को खोजना है जो किसी दिए गए मान के योग हैं। रास्ता जड़ से पत्ती तक शुरू होना चाहिए। हमें वह रास्ता खोजना होगा जहां योग समान हो। अगर पेड़ [5,4,8,11,null,13,4,7,2,null,null,5,1] जैसा है, और योग 22

  1. C++ में एक बाइनरी ट्री में अधिकतम पथ योग

    इस समस्या में, हमें एक बाइनरी ट्री दिया जाता है जिसमें प्रत्येक नोड में एक मान होता है। हमारा काम एक बाइनरी ट्री की दो पत्तियों के बीच अधिकतम पथ योग खोजने के लिए एक प्रोग्राम बनाना है। यहां, हमें एक लीफ नोड से दूसरे लीफ नोड के लिए पथ फॉर्म ढूंढना होगा जो अधिकतम मूल्यों को प्रदान करेगा। इस अधिकतम यो

  1. सी++ में त्रिभुज में न्यूनतम योग पथ

    समस्या कथन संख्याओं की त्रिकोणीय संरचना को देखते हुए, ऊपर से नीचे तक न्यूनतम पथ योग ज्ञात करें। प्रत्येक चरण में आप नीचे की पंक्ति में आसन्न संख्याओं पर जा सकते हैं। उदाहरण अगर इनपुट है -    5   7 3  8 1 2 9 6 4 5 फिर न्यूनतम योग 13 इस प्रकार है - 5 + 3 + 1 + 4 एल्गोरिदम गति