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

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

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

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

इनपुट: गिरफ्तारी [] ={55, 43, 12, 76, 89, 25, 99} , के =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++ में बाइनरी ट्री में अधिकतम लम्बवत योग ज्ञात कीजिए

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

  1. अधिकतम आकार 2 का न्यूनतम विभाजन और C++ में दिए गए मान द्वारा सीमित योग

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

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

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