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

सख्ती से बढ़ते सब-अर्रे का अधिकतम योग खोजें C++ में

मान लीजिए हमारे पास n पूर्णांकों का एक ऐरे है। सख्ती से बढ़ते सब-अर्रे का अधिकतम योग खोजें। तो यदि ऐरे [1, 2, 3, 2, 5, 1, 7] जैसा है, तो योग 8 होगा। इस ऐरे में तीन सख्ती से बढ़ते सब-अर्रे हैं ये हैं {1, 2, 3}, {2, 5} और {1, 7}। अधिकतम योग वाला सब-अर्रे {1, 7} है।

इस समस्या को हल करने के लिए, हमें अधिकतम योग और वर्तमान योग का ट्रैक रखना होगा। प्रत्येक तत्व arr[i] के लिए यदि यह arr[i-1] से बड़ा है, तो हम इसे वर्तमान योग में जोड़ते हैं, अन्यथा arr[i] दूसरे सब-अर्रे का प्रारंभिक बिंदु है। तो हम वर्तमान योग को ऐरे के रूप में अपडेट करेंगे। वर्तमान योग को अपडेट करने से पहले, हम आवश्यकता होने पर अधिकतम योग को अपडेट करेंगे।

उदाहरण

#include <iostream>
using namespace std;

int maximum(int a, int b) {
    return (a > b) ? a : b;
}

int maximum_sum_incr_subarr(int array[], int n) {
    int max_sum = 0;
    int current_sum = array[0];
    for (int i = 1; i < n; i++) {
        if (array[i - 1] < array[i])
            current_sum = current_sum + array[i];
        else {
            max_sum = maximum(max_sum, current_sum);
            current_sum = array[i];
        }
    }
    return max(max_sum, current_sum);
}

int main() {
    int arr[] = {1, 2, 3, 2, 5, 1, 7};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Maximum sum: " << maximum_sum_incr_subarr(arr, n);
}

आउटपुट

Maximum sum: 8

  1. - C++ में प्रीफिक्स सम का उपयोग करके O(n) में अधिकतम सबएरे सम

    समस्या कथनसकारात्मक और नकारात्मक पूर्णांकों का एक सरणी दिया गया है, उस सरणी में अधिकतम सबएरे सम ज्ञात करें।उदाहरणयदि इनपुट सरणी है {-12, -5, 4, -1, -7, 1, 8, -3} तो आउटपुट 9 होगा।एल्गोरिदमइनपुट सरणी का प्रीफिक्स सम निकालें।प्रारंभ करें: min_prefix_sum = 0, res = -infinitei = 0 से n तक लूप बनाए रखें

  1. बाइनरी ट्री में अधिकतम वर्टिकल योग खोजें C++ में बाइनरी ट्री में अधिकतम वर्टिकल योग खोजें C++ में

    मान लीजिए हमारे पास एक बाइनरी ट्री है। कार्य वर्टिकल ऑर्डर ट्रैवर्सल में सभी नोड्स के योग के अधिकतम को प्रिंट करना है। तो यदि ट्री नीचे जैसा है - वर्टिकल ऑर्डर ट्रैवर्सल इस तरह है - 4 2 1 + 5 + 6 = 12 3 + 8 = 11 7 9 यहां अधिकतम 12 है। दृष्टिकोण सरल है। हम वर्टिकल ऑर्डर ट्रैवर्सल करेंगे, फिर योग खोज

  1. - C++ में बाइनरी सर्च दृष्टिकोण का उपयोग करके अधिकतम सबएरे योग ज्ञात करना

    बाइनरी सर्च एक तेज खोज एल्गोरिदम है जिसकी रन-टाइम जटिलता O(log n) है। यह एल्गोरिदम विभाजन और विजय के सिद्धांत पर काम करता है। इस एल्गोरिदम के ठीक से काम करने के लिए, डेटा संग्रह सॉर्टेड रूप में होना चाहिए। बाइनरी सर्च संग्रह के मध्य तत्व की तुलना करके किसी विशेष आइटम को खोजता है। यदि मेल होता है, त