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

C++ में ट्रायंगल में न्यूनतम सम पथ


समस्या कथन

संख्याओं की एक त्रिकोणीय संरचना दी गई है, शीर्ष से नीचे तक न्यूनतम पथ योग ढूंढें। प्रत्येक चरण में आप नीचे की पंक्ति पर आसन्न संख्याओं पर जा सकते हैं।

उदाहरण

यदि इनपुट है -

    5
   7 3
  8 1 2
 9 6 4 5

तो न्यूनतम योग 13 है जैसा कि नीचे दिया गया है -

5 + 3 + 1 + 4

एल्गोरिदम

  • डायनामिक प्रोग्रामिंग की मेमोराइजेशन तकनीक का उपयोग करें
  • मेमोराइजेशन के लिए 1-D ऐरे बनाएं जिसे मेमोराइजेशन कहा जाता है
  • प्रत्येक K पंक्ति के लिए नीचे दिए गए फॉर्मूला का उपयोग करें -
memorization[i] = min( memorization[i], memorization[i+1]) + A[k][i];

उदाहरण

#include 
using namespace std;

int getMinSum(vector> &arr) {
    int memorization[arr.size()];
    int n = arr.size() - 1;
    for (int i = 0; i < arr[n].size(); ++i) {
        memorization[i] = arr[n][i];
    }
    for (int i = arr.size() - 2; i >= 0; --i) {
        for (int j = 0; j < arr[i + 1].size() - 1; ++j) {
            memorization[j] = arr[i][j] + min(memorization[j], memorization[j + 1]);
        }
    }
    return memorization[0];
}

int main() {
    vector> arr = {
        {5},
        {7, 3},
        {8, 1, 2},
        {9, 6, 4, 5},
    };
    cout << "Minimum sum path = " << getMinSum(arr) << endl;
    return 0;
}

जब आप उपरोक्त प्रोग्राम को कंपाइल और 실행 करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है -

आउटपुट

Minimum sum path = 13

  1. C++ में पाथ सम III - रूट से लीफ तक दिए गए योग वाले पाथ ढूंढना C++ में पाथ सम III - रूट से लीफ तक दिए गए योग वाले पाथ ढूंढना

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

  1. - C++ में त्रिभुज में अधिकतम पथ योग

    इस समस्या में, हमें संख्याएँ त्रिभुज के रूप में दी गई हैं। हमारा कार्य एक प्रोग्राम बनाना है जो त्रिभुज में अधिकतम पथ योग ढूंढेगा। तत्वों को पहली पंक्ति से 1 तत्व के साथ व्यवस्थित किया जाता है और फिर अगली पंक्तियों में तत्वों की बढ़ती संख्या के साथ जब तक nवीं पंक्ति में तत्व नहीं होते। इसलिए, प्रोग

  1. - C++ में NxN ग्रिड में न्यूनतम योग गिरता पथ

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