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

C++ में M तत्वों को चुनें ताकि सन्निहित पुनरावृत्ति K से अधिक न हो और अधिकतम योग प्राप्त हो


इस समस्या में, हमें एक ऐरे arr[] और दो पूर्णांक M और K दिए गए हैं। हमारा कार्य दिए गए ऐरे के तत्वों का उपयोग करके एक ऐरे बनाना है। नए ऐरे का आकार M होना चाहिए और आकार K से बड़े किसी भी सब-ऐरे के सभी तत्व समान नहीं हो सकते। हमें बने ऐरे द्वारा संभव अधिकतम योग प्रिंट करना है।

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

इनपुट - arr[] = {1, 2, 4, 5, 7}, M = 5, K = 2

व्याख्या - शर्त को पूरा करने वाला बना ऐरे {7, 7, 5, 7, 7}। यहां, आकार 2 से बड़ा कोई सब-ऐरे सभी समान तत्व नहीं रख सकता।

इस समस्या को हल करने के लिए, हमें अधिकतम मान वाले तत्व का उपयोग करके एक ऐरे बनाना होगा। लेकिन हम अधिकतम तत्व का उपयोग K बार से अधिक नहीं कर सकते, इसलिए K बार के बाद हमें ऐरे के दूसरे अधिकतम तत्व का उपयोग करना होगा। ऐरे में हर K अधिकतम मान के बाद एक दूसरा अधिकतम मान डालें और M लंबाई का ऐरे बनाएं। अंतिम आउटपुट इस ऐरे के सभी तत्वों का योग होगा।

उदाहरण

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

#include <iostream>
using namespace std;

long int arraySum(int arr[], int n, int m, int k) {
    int max1 = arr[0], max2 = arr[0];
    for (int i = 1; i < n; i++) {
        if (arr[i] > max1) {
            max2 = max1;
            max1 = arr[i];
        } else if (arr[i] > max2)
            max2 = arr[i];
    }
    int max2count = m / (k + 1);
    long int sum = max2count * max2 + (m - max2count) * max1;
    return sum;
}

int main() {
    int arr[] = {1, 3, 6, 7, 4, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    int m = 9, k = 2;
    cout << "दिए गए ऐरे से बने ऐरे का अधिकतम योग जैसे कि आकार " << k
         << " से बड़ा कोई सबऐरे समान तत्व नहीं रखेगा: ";
    cout << arraySum(arr, n, m, k);
    return 0;
}

आउटपुट

दिए गए ऐरे से बने ऐरे का अधिकतम योग जैसे कि आकार 2 से बड़ा कोई सबऐरे समान तत्व नहीं रखेगा: 60
  1. सर्कुलर ऐरे में अधिकतम योग जहाँ कोई दो आसन्न तत्व न हों - C++ सर्कुलर ऐरे में अधिकतम योग जहाँ कोई दो आसन्न तत्व न हों - C++

    इस समस्या में, हमें एक सर्कुलर ऐरे cirArr[] दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो C++ में सर्कुलर ऐरे में अधिकतम योग ढूंढे जहाँ कोई दो आसन्न तत्व न हों।समस्या विवरणसर्कुलर ऐरे के लिए, हमें ऐरे के तत्वों का अधिकतम योग ढूंढना है जहाँ आसन्न तत्वों को नहीं लिया जा सकता, यानी हमें वैकल्पिक तत

  1. - C++ में सन्निकट सरणी

    मान लीजिए हमारे पास एक बाइनरी सरणी है, हमें समान संख्या में 0 और 1 वाले सन्निकट उपसरणी की अधिकतम लंबाई ढूंढनी है। इसलिए यदि इनपुट [0,1,0] है, तो आउटपुट 2 होगा क्योंकि [0,1] या [1,0] समान संख्या में 0 और 1 वाली सबसे बड़ी सन्निकट सरणी है। हल का दृष्टिकोण इसे हल करने के लिए हम निम्नलिखित चरणों का पाल

  1. - C++ में अधिकतम K सरणी तत्वों के चिह्न बदलकर अधिकतम सबएरे सम

    इस समस्या में, हमें एक सरणी और एक पूर्णांक k दिया गया है। हमारा कार्य एक प्रोग्राम बनाना है जो C++ में अधिकतम k सरणी तत्वों के चिह्न बदलकर अधिकतम सबएरे सम ढूंढेगा।कोड विवरण - यहां, हमें सरणी में अधिकतम k तत्व ढूंढने होंगे जिन्हें पलटने से इस सरणी से बने सबएरे का सम अधिकतम हो जाएगा।समस्या को समझने के