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

उप-सरणी की अधिकतम लंबाई इस प्रकार है कि उप-सरणी का योग C++ में भी है

हमें पूर्णांकों की एक सरणी Arr[] दी गई है। लक्ष्य Arr[] की सबसे लंबी लंबाई वाली उप-सरणी खोजना है, जिसके तत्वों का योग सम है। यानी, एक सबअरे के एलीमेंट का योग सम होता है और वह सबएरे लंबाई में सबसे लंबा होता है।

इनपुट - अरे [] ={ 2,3,5,2,6,7 }।

आउटपुट −उपसरणी की अधिकतम लंबाई − 4

स्पष्टीकरण -अधिकतम लंबाई उपसरणी {5,2,6,7} है। योग 20 है जो सम है।

इनपुट - अरे [] ={ 5,7,7,3,4}।

आउटपुट − उपसरणी की अधिकतम लंबाई − 4

स्पष्टीकरण - अधिकतम लंबाई उपसरणी {5,7,7,3} है। योग 22 है जो सम है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • पूर्णांक सरणी Arr[] का उपयोग पूर्णांकों को संग्रहीत करने के लिए किया जाता है।

  • सरणी की लंबाई को स्टोर करने के लिए परिवर्तनीय आकार का उपयोग किया जाता है।

  • फ़ंक्शन की लंबाई (int arr []) जाँच है कि सरणियों का योग सम है। Leng का उपयोग सबअरे की लंबाई को स्टोर करने के लिए किया जाता है।

  • सरणी के पूरे योग की गणना करें, यदि सरणी की लंबाई भी वापस आती है, n.

  • अब पहले तत्व से शुरू करते हुए, पूरे सरणी को पार करें, यदि कोई विषम तत्व पाया जाता है, तो arr[i] को छोड़कर दोनों आधे भाग की लंबाई ज्ञात करें।

  • उपसरणी की लंबाई के लिए अधिकतम लंबाई लौटाएं।

उदाहरण

#include<iostream<
int Length(int arr[], int n){
   int sum = 0, leng = 0;
   // if whole array is even
   for (int i = 0; i < n; i++)
      sum += arr[i];
   if (sum % 2 == 0) // total sum is already even
      return n;
   // Find an index i such the a[i] is odd
   // and compare length of both halfs excluding
   // a[i] to find max length subarray
   for (int i = 0; i < n; i++) {
      if (arr[i] % 2 == 1)
         leng = i>n-i-1?i:n-i-1;
   }
   return leng;
}
int main(){
   int Arr[] = { 1, 2, 6, 2, 4,2 };
   int size = 6;
   printf("Maximum length of subarray such that sum of the subarray is even: %d",Length(Arr, size));
return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Maximum length of subarray such that sum of the subarray is even : 5

  1. अधिकतम अनुवर्ती योग जैसे कि C++ प्रोग्राम में कोई तीन क्रमागत न हों

    इस समस्या में, हमें n धनात्मक पूर्णांकों से युक्त एक सरणी arr[] दिया जाता है। हमारा कार्य अधिकतम अनुवर्ती योग ज्ञात करने के लिए एक प्रोग्राम बनाना है ताकि कोई तीन क्रमागत न हो। समस्या का विवरण - यहां, हमें सरणी से बनाए गए अनुक्रमों का योग इस तरह निकालने की आवश्यकता है कि कोई लगातार तीन तत्व न हों।

  1. अधिकतम उपसरणी आकार, जैसे कि उस आकार के सभी उपसरणियों का योग C++ प्रोग्राम में k से कम है

    इस समस्या में, हमें n धनात्मक पूर्णांकों और पूर्णांक k से मिलकर बना एक सरणी arr[] दिया गया है। हमारा काम मैक्सिममसुबरे आकार को खोजने के लिए एक प्रोग्राम बनाना है, जैसे कि उस आकार के सभी उप-सरणी का योग k से कम हो। समस्या का विवरण - हमें एक सबअरे का सबसे बड़ा आकार खोजने की जरूरत है, जैसे कि एरे के तत

  1. बाइनरी ट्री में अधिकतम उप-वृक्ष योग जैसे कि उप-वृक्ष भी C++ प्रोग्राम में एक BST है

    इस समस्या में हमें एक बाइनरी ट्री BT दिया जाता है। हमारा काम बाइनरी ट्री में अधिकतम उप-वृक्ष योग को खोजने के लिए एक प्रोग्राम बनाना है जैसे कि उप-पेड़ भी एक बीएसटी है। बाइनरी ट्री की एक विशेष शर्त है कि प्रत्येक नोड में अधिकतम दो बच्चे हो सकते हैं। बाइनरी सर्च ट्री एक ऐसा पेड़ है जिसमें सभी नोड्