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

C++ में ऐरे में अधिकतम संतुलन योग


समस्या कथन

एक ऐरे arr[] दिया गया है। इंडेक्स i के लिए arr[] में अधिकतम प्रीफिक्स योग का मान ढूंढें जो सफिक्स योग भी हो।

उदाहरण

यदि इनपुट ऐरे है -

Arr[] = {1, 2, 3, 5, 3, 2, 1} तो आउटपुट 11 है -

  • प्रीफिक्स योग = arr[0..3] = 1 + 2 + 3 + 5 = 11 और
  • सफिक्स योग = arr[3..6] = 5 + 3 + 2 + 1 = 11

एल्गोरिदम

  • ऐरे को ट्रैवर्स करें और प्रत्येक इंडेक्स के लिए प्रीफिक्स योग को ऐरे presum[] में स्टोर करें, जिसमें presum[i] सबऐरे arr[0..i] का योग स्टोर करता है
  • ऐरे को फिर से ट्रैवर्स करें और सफिक्स योग को दूसरे ऐरे suffsum[] में स्टोर करें, जिसमें suffsum[i] सबऐरे arr[i..n-1] का योग स्टोर करता है
  • प्रत्येक इंडेक्स के लिए जांचें कि क्या presum[i], suffsum[i] के बराबर है और यदि वे बराबर हैं तो उनके मान की तुलना अब तक के समग्र अधिकतम से करें

उदाहरण

#include <bits/stdc++.h> 
using namespace std; 

int getMaxSum(int* arr, int n) {
    int preSum[n];
    int suffSum[n];
    int result = INT_MIN;
    
    preSum[0] = arr[0];
    for (int i = 1; i < n; ++i) {
        preSum[i] = preSum[i - 1] + arr[i];
    }
    
    suffSum[n - 1] = arr[n - 1];
    if (preSum[n - 1] == suffSum[n - 1]) {
        result = max(result, preSum[n - 1]);
    }
    
    for (int i = n - 2; i >= 0; --i) {
        suffSum[i] = suffSum[i + 1] + arr[i];
        if (suffSum[i] == preSum[i]) {
            result = max(result, preSum[i]);
        }
    }
    
    return result;
}

int main() {
    int arr[] = {1, 2, 3, 5, 3, 2, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Max equlibrium sum = " << getMaxSum(arr, n) << endl;
    return 0;
}

आउटपुट

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

Max equlibrium sum = 11

  1. - C++ में अधिकतम K सरणी तत्वों के चिह्न बदलकर अधिकतम सबएरे सम

    इस समस्या में, हमें एक सरणी और एक पूर्णांक k दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो C++ में अधिकतम k सरणी तत्वों के चिह्न बदलकर अधिकतम सबएरे सम ढूंढेगा।कोड विवरण - यहां, हमें सरणी में अधिकतम k तत्व ढूंढने होंगे जिन्हें पलटने से इस सरणी से बने सबएरे का सम अधिकतम हो जाएगा।समस्या को समझने के

  1. - C++ में ऐरे का अधिकतम औसत योग पार्टीशन

    समस्या कथन एक ऐरे दिया गया है, हम संख्याओं की एक पंक्ति A को अधिकतम K आसन्न (गैर-खाली) समूहों में पार्टीशन करते हैं, फिर स्कोर प्रत्येक समूह के औसत का योग होता है। अधिकतम स्कोर क्या हो सकता है? उदाहरण यदि इनपुट ऐरे है {9, 2, 5, 3, 10} तो हम ऐरे को निम्नानुसार पार्टीशन कर सकते हैं: {9} {2, 5, 3} और

  1. - C++ में सम ऐरे पजल (बिना घटाव ऑपरेटर के)

    यहां हम ऐरे से संबंधित एक रोचक समस्या देखेंगे। n तत्वों वाला एक ऐरे है। हमें n तत्वों का एक और ऐरे बनाना है। लेकिन दूसरे ऐरे का i-th स्थान पहले ऐरे के i-th तत्व को छोड़कर सभी तत्वों का योग रखेगा। और एक प्रतिबंध है कि हम इस समस्या में घटाव ऑपरेटर का उपयोग नहीं कर सकते। यदि हम घटाव ऑपरेशन का उपयोग कर