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

C++ में आकार k के उपसरणी का अधिकतम (या न्यूनतम) योग ढूंढें


इस समस्या में, हमें एक सरणी arr[] और एक संख्या k दी गई है। हमारा कार्य आकार k के उपसरणी का अधिकतम (या न्यूनतम) योग ढूंढना है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: arr[] = {55, 43, 12, 76, 89, 25, 99} , k = 2

आउटपुट: 165

व्याख्या:

आकार 2 के उपसरणी का योग = 76 + 89 = 165

समाधान दृष्टिकोण

समस्या को हल करने का एक सरल दृष्टिकोण सभी k आकार के उपसरणी ढूंढना और फिर अधिकतम मान वाले योग को वापस करना है।

दूसरा दृष्टिकोण स्लाइडिंग विंडो का उपयोग करना है, हम k आकार के उपसरणी का योग ढूंढेंगे। इसके लिए, अगले k आकार के उपसरणी के लिए, हम अंतिम सूचकांक तत्व को घटाएंगे और अगले सूचकांक तत्व को जोड़ेंगे।

और फिर अधिकतम मान वाले उपसरणी योग को वापस करें।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <iostream>
using namespace std;

int findMaxSumSubarray(int arr[], int n, int k) {
    if (n < k) {
        cout << "Invalid";
        return -1;
    }
    int maxSum = 0;
    for (int i=0; i<k; i++)
        maxSum += arr[i];
    int curr_sum = maxSum;
    for (int i=k; i<n; i++) {
        curr_sum += arr[i] - arr[i-k];
        maxSum = max(maxSum, curr_sum);
    }
    return maxSum;
}

int main() {
    int arr[] = {55, 43, 12, 76, 89, 25, 99};
    int n = sizeof(arr)/sizeof(arr[0]);
    int k = 2;
    cout<<"The sum of subarray with max sum of size "<<k<<" is "<<findMaxSumSubarray(arr, n, k);
    return 0;
}

आउटपुट

The sum of subarray with max sum of size 2 is 165

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

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

  1. - C++ में अधिकतम आकार 2 और दी गई वैल्यू द्वारा सीमित योग के साथ न्यूनतम पार्टीशन

    समस्या विवरण सकारात्मक संख्याओं का एक ऐरे arr[] दिया गया है, ऐरे में न्यूनतम संख्या में सेट ढूंढें जो निम्नलिखित गुण को संतुष्ट करते हैं: एक सेट में अधिकतम दो एलिमेंट्स हो सकते हैं। दोनों एलिमेंट्स का सन्निकट होना आवश्यक नहीं है। सेट के एलिमेंट्स का योग दी गई Key से कम या बराबर होना चाहिए। यह माना

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

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