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

C++ में दो सरणियों के योग को बराबर करने वाली जोड़ी ढूंढें


समस्या विवरण

दो सरणियां दी गई हैं जिनमें अलग-अलग संख्या में तत्व हैं। हमें एक जोड़ी (x, y) ढूंढनी है जहां x पहली सरणी में है और y दूसरी सरणी में है। इस जोड़ी को स्वैप करने के बाद दोनों सरणियों का योग बराबर होना चाहिए।

उदाहरण: सरणी A = [4, 1, 2, 2, 1, 1] (योग = 11) और सरणी B = [3, 3, 6, 3] (योग = 15)। जोड़ी (1, 3) को स्वैप करने पर: A = [4, 3, 2, 2, 1, 1] (योग = 13), B = [1, 3, 6, 3] (योग = 13)।

हल दृष्टिकोण

हम दोनों सरणियों के सभी संभावित जोड़ियों की जांच करते हैं और नए योग की तुलना करते हैं।

उदाहरण कोड

#include <iostream>
using namespace std;

int arraySum(int arr[], int n) {
    int sum = 0;
    for (int i = 0; i < n; i++) sum += arr[i];
    return sum;
}

void getPair(int A[], int n, int B[], int m) {
    int sum_first = arraySum(A, n);
    int sum_second = arraySum(B, m);
    int newsum_first, newsum_second, first, second;
    
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            newsum_first = sum_first - A[i] + B[j];
            newsum_second = sum_second - B[j] + A[i];
            if (newsum_first == newsum_second) {
                first = A[i];
                second = B[j];
            }
        }
    }
    cout << "(" << first << ", " << second << ")";
}

int main() {
    int A[] = {4, 1, 2, 2, 1, 1};
    int n = sizeof(A) / sizeof(A[0]);
    int B[] = {3, 3, 6, 3};
    int m = sizeof(B) / sizeof(B[0]);
    getPair(A, n, B, m);
    return 0;
}

आउटपुट

(1, 3)
  1. - दोहराए गए घटाव से सभी तत्वों को समान बनाकर अधिकतम ऐरे योग खोजें C++ में

    मान लीजिए हमारे पास n तत्वों का एक ऐरे है। सभी तत्वों के अधिकतम संभव योग को खोजें जैसे कि सभी तत्व समान हों। केवल अनुमत ऑपरेशन किन्हीं दो तत्वों को चुनना और बड़े को उन दोनों के निरपेक्ष अंतर से बदलना है। मान लीजिए तत्व [9, 12, 3, 6] जैसे हैं। तो आउटपुट 12 होगा। तो पहले A[1] को A[1] - A[3] = 12 - 6 =

  1. - ऐरे में गैर-दोहराए गए (अलग) तत्वों का योग खोजें C++ में

    मान लीजिए हमारे पास कुछ तत्वों के साथ एक ऐरे A है। हमें ऐरे में सभी अलग-अलग तत्वों का योग खोजना है। तो यदि A = [5, 12, 63, 5, 33, 47, 12, 63], तो अलग-अलग तत्वों का योग 160 है। डुप्लीकेट तत्वों को एक बार मानने के बाद बस अनदेखा कर दिया जाता है। हम इस समस्या को कुशलता से हल करने के लिए अनऑर्डर्ड सेट का

  1. - ऐरे में वे सभी तत्व खोजें जिनके कम से कम दो बड़े तत्व हों C++ में

    मान लीजिए, हमारे पास n संख्याओं का एक ऐरे है। हमें ऐरे में वे सभी तत्व खोजने हैं, जिनके कम से कम दो बड़े तत्व हों। यदि ऐरे A = [2, 8, 7, 1, 5] जैसा है, तो परिणाम [2, 1, 5] होगा। इसे हल करने के लिए, हम दूसरा अधिकतम तत्व खोजेंगे, फिर उन सभी तत्वों को प्रिंट करेंगे जो दूसरे अधिकतम मान से कम या बराबर है