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

C++ प्रोग्राम: अधिकतम सबएरे योग O(n²) समय में (नाइव विधि)

एल्गोरिदम

सबसे पहले सरणी के तत्वों को इनपुट के रूप में लें। फिर सबएरे की लंबाई 1 से n तक के लिए एक लूप बनाएं। इस लूप के भीतर एक नेस्टेड लूप बनाएं जो उस लंबाई के पहले सबएरे का योग निकालता है। शेष सबएरे के योग के लिए, अगले तत्व को योग में जोड़ें और उस सबएरे के पहले तत्व को घटाएं। इस योग की तुलना वैश्विक अधिकतम से करें और यदि यह अधिक है तो अपडेट करें। अंत में अधिकतम सबएरे और उसका योग प्रिंट करें।

उदाहरण कोड

#include <iostream>
using namespace std;

int main() {
    int n, i, j, m = -1, s, ini_m, fi_m;
    cout << "\nसरणी में डेटा तत्वों की संख्या दर्ज करें: ";
    cin >> n;
    int a[n];
    for (i = 0; i < n; i++) {
        cout << "तत्व " << i+1 << ": ";
        cin >> a[i];
    }
    for (i = 1; i < n+1; i++) {
        s = 0;
        for (j = 0; j < n; j++) {
            if (j < i)
                s += a[j];
            else
                s = s + a[j] - a[j-i];
            if (m < s) {
                ini_m = j - i + 1;
                fi_m = j;
                m = s;
            }
        }
    }
    cout << "\nअधिकतम सब एरे है: ";
    for (i = ini_m; i <= fi_m; i++)
        cout << a[i] << " ";
    cout << "\nअधिकतम सबएरे योग है: " << m;
    return 0;
}

आउटपुट

सरणी में डेटा तत्वों की संख्या दर्ज करें: 10
तत्व 1: 1
तत्व 2: -2
तत्व 3: 3
तत्व 4: -4
तत्व 5: 5
तत्व 6: -6
तत्व 7: 7
तत्व 8: 8
तत्व 9: -9
तत्व 10: 10
अधिकतम सब एरे है: 7 8 -9 10
अधिकतम सबएरे योग है: 16
  1. सबसे गहरे नोड्स के योग का प्रोग्राम C++ में सबसे गहरे नोड्स के योग का प्रोग्राम C++ में

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें इसके सबसे गहरे पत्तों के मानों का योग ढूंढना है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक मैप m और maxDepth परिभाषित करें एक रिकर्सिव विधि solve() परिभाषित करें, यह नोड और लेवल लेगी, प्रारंभ में लेवल 0 है यदि नोड मौजूद नहीं है, तो लौटें maxDept

  1. - C++ प्रोग्राम: सरणी के पार्टीशन विधि से kवां सबसे छोटा तत्व खोजें

    एल्गोरिदमCreatePartition() फ़ंक्शन बनाएं जिसमें सरणी a, निचली सीमा l और ऊपरी सीमा h हो। in := l और pi := h सेट करें। l से h तक लूप चलाएं, यदि a[i] < a[pi] तो a[i] और a[in] को स्वैप करें और in बढ़ाएं। अंत में a[pi] और a[in] को स्वैप करें और in लौटाएं। Partition() फ़ंक्शन में: यदि low k-1 तो Partitio

  1. - पायथन में सबअरे के अधिकतम योग को m से मोड्यूलो करके ढूंढना

    पायथन में सबअरे के अधिकतम योग को m से मोड्यूलो करके ढूंढना। मान लीजिए हमारे पास n तत्वों की एक ऐरे nums है। हमारे पास एक और इंटीजर m है। हमें इसके किसी भी सबअरे के योग के अधिकतम मान को m से मोड्यूलो करके ढूंढना है। उदाहरण के लिए, यदि इनपुट है nums = [1,5,7,3], m = 5, तो आउटपुट होगा 3 क्योंकि: [1