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

C++ में त्रिकोण में न्यूनतम पथ योग (Minimum Path Sum in Triangle)


मान लीजिए हमारे पास एक त्रिकोण (triangle) है। हमें ऊपर से नीचे तक न्यूनतम पथ योग ढूंढना है। प्रत्येक चरण में हम नीचे की पंक्ति पर आसन्न संख्याओं पर जा सकते हैं।

उदाहरण के लिए, यदि निम्नलिखित त्रिकोण है:

[
    [2],
    [3,4],
    [6,5,7],
    [4,1,8,3]
]

ऊपर से नीचे तक न्यूनतम पथ योग 11 है (2 + 3 + 5 + 1 = 11)।

आइए चरण देखें:

  • डायनामिक प्रोग्रामिंग दृष्टिकोण में उपयोग करने के लिए एक तालिका बनाएं।
  • n := त्रिकोण का आकार
  • i := n – 2 से 0 तक डाउन करें:
    • j := 0 से i तक:
      • dp[j] := triangle[i, j] + dp[j] और dp[j + 1] का न्यूनतम
  • dp[0] वापस करें

उदाहरण

class Solution {
public:
    void printVector(vector <int>& v){
        for(int i = 0; i < v.size(); i++) cout << v[i] << " ";
        cout << endl;
    }
    int minimumTotal(vector<vector<int>>& triangle) {
        vector <int> dp(triangle.back());
        int n = triangle.size();
        for(int i = n - 2; i >= 0; i--){
            for(int j = 0; j <= i; j++){
                dp[j] = triangle[i][j] + min(dp[j], dp[j + 1]);
            }
        }
        return dp[0];
    }
};

इनपुट

[[2],[3,4],[6,5,7],[4,1,8,3]]

आउटपुट

11
  1. C++ में लाइन रिफ्लेक्शन - Y-अक्ष के समानांतर सममित रेखा जांचें C++ में लाइन रिफ्लेक्शन - Y-अक्ष के समानांतर सममित रेखा जांचें

    समस्या विवरण मान लीजिए हमारे पास 2D तल पर n बिंदु हैं, हमें जांचना है कि क्या y-अक्ष के समानांतर कोई रेखा है जो दिए गए बिंदुओं को सममित रूप से प्रतिबिंबित करती है, दूसरे शब्दों में, जांचें कि क्या कोई ऐसी रेखा मौजूद है जो सभी बिंदुओं को दी गई रेखा पर प्रतिबिंबित करने के बाद मूल बिंदुओं का समुच्चय प

  1. - C++ में स्टैक का उपयोग करके लिंक्ड लिस्ट को उल्टा करना

    लिंक्ड लिस्ट डायनामिकली मेमोरी आवंटित करती है, जिसका उपयोग स्टैक को लागू करने के लिए किया जाता है। यह प्रोग्राम C++ प्रोग्रामिंग में लिंक्ड लिस्ट को उल्टा करने को प्रदर्शित करता है। यहां, उम्मीदवार अपेक्षित परिणाम प्राप्त करने के लिए निम्नलिखित दृष्टिकोण अपना सकते हैं। एल्गोरिदम निम्नलिखित है: एल्गो

  1. - C++ में static_cast

    static_cast का उपयोग सामान्य/साधारण प्रकार रूपांतरण के लिए किया जाता है। यह निहित प्रकार जबरदस्ती (implicit type coercion) के लिए भी जिम्मेदार कास्ट है और इसे स्पष्ट रूप से भी बुलाया जा सकता है। आपको इसका उपयोग फ्लोट को इंट में, चार को इंट में आदि जैसे मामलों में करना चाहिए। यह संबंधित प्रकार के क्