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

C++ में सम योग वाले अधिकतम लंबाई के सबएरे की लंबाई

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

इनपुट - Arr[] = { 2,3,5,2,6,7 }

आउटपुट - अधिकतम लंबाई सबएरे - 4

व्याख्या - अधिकतम लंबाई सबएरे है { 5,2,6,7 }। योग 20 है जो सम है।

इनपुट - Arr[] = { 5,7,7,3,4 }

आउटपुट - अधिकतम लंबाई सबएरे - 4

व्याख्या - अधिकतम लंबाई सबएरे है { 5,7,7,3 }। योग 22 है जो सम है।

प्रयुक्त दृष्टिकोण

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

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

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

  • पूरे ऐरे का योग निकालें, यदि सम है तो ऐरे की लंबाई n वापस करें।

  • अब पहले तत्व से शुरू करके, पूरे ऐरे को ट्रैवर्स करें, यदि एक विषम तत्व मिलता है तो arr[i] को छोड़कर दोनों हिस्सों की लंबाई ढूंढें।

  • सबएरे की लंबाई के लिए अधिकतम लंबाई वापस करें।

C++ प्रोग्राम उदाहरण

#include <iostream>
using namespace std;

int Length(int arr[], int n) {
    int sum = 0, leng = 0;
    
    // यदि पूरा ऐरे सम है
    for (int i = 0; i < n; i++)
        sum += arr[i];
    
    if (sum % 2 == 0) // कुल योग पहले से ही सम है
        return n;
    
    // एक इंडेक्स i ढूंढें जैसे कि a[i] विषम है
    // और दोनों हिस्सों की लंबाई की तुलना करें a[i] को छोड़कर
    // अधिकतम लंबाई सबएरे ढूंढने के लिए
    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;
    cout << "Maximum length of subarray such that sum of the subarray is even: " << 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 धनात्मक पूर्णांकों से युक्त एक सरणी arr[] और एक पूर्णांक k दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो अधिकतम उपसरणी आकार ढूंढे जैसे कि उस आकार की सभी उपसरणियों का योग k से कम हो। समस्या विवरण हमें उपसरणी का सबसे बड़ा आकार ढूंढना है, जैसे कि सरणी के तत्वों से बनी उस आका

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

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