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

दो सरणियों से मॉड्यूलो ऑपरेशन द्वारा K देने वाले जोड़ों की गणना - C++

समस्या विवरण

हमें दो धनात्मक संख्याओं वाली सरणियाँ और एक मान K दिया गया है। लक्ष्य उन अद्वितीय जोड़ों (A,B) की गणना करना है जहाँ A पहली सरणी से और B दूसरी सरणी से है, और A%B=K या B%A=K हो।

उदाहरण

इनपुट: arr_1[] = {1,2,5,3,4}, arr_2[] = {7,1,3}, k=2

आउटपुट: 2

व्याख्या: (5,7) → 7%5=2, (5,3) → 5%3=2

इनपुट: arr_1[] = {2,5}, arr_2[] = {3,7}, k=1

आउटपुट: 2

व्याख्या: (2,3) → 3%2=1, (2,7) → 7%2=1

दृष्टिकोण

दोनों सरणियों को नेस्टेड लूप से पार करें। प्रत्येक जोड़े के लिए मॉड्यूलो शर्त जाँचें। अद्वितीय जोड़ों के लिए set> का उपयोग करें।

एल्गोरिदम

  1. दोनों सरणियाँ और k लें
  2. set> se बनाएँ
  3. दोनों सरणियों पर नेस्टेड लूप:
    • यदि arr_1[i] > arr_2[j] और arr_1[i]%arr_2[j]==k तो जोड़ा डालें
    • अन्यथा यदि arr_2[j]%arr_1[i]==k तो जोड़ा डालें
  4. se.size() लौटाएँ

C++ कार्यान्वयन

#include <bits/stdc++.h>
using namespace std;

int modulo_pairs(int arr_1[], int arr_2[], int size_arr_1, int size_arr_2, int k) {
    set> se;
    
    for (int i = 0; i < size_arr_1; i++) {
        for (int j = 0; j < size_arr_2; j++) {
            if (arr_1[i] > arr_2[j]) {
                if (arr_1[i] % arr_2[j] == k)
                    se.insert({arr_1[i], arr_2[j]});
            } else {
                if (arr_2[j] % arr_1[i] == k)
                    se.insert({arr_2[j], arr_1[i]});
            }
        }
    }
    return se.size();
}

int main() {
    int arr_1[] = {2, 7, 1, 9};
    int arr_2[] = {4, 10, 3, 10};
    int size_arr_1 = sizeof(arr_1) / sizeof(arr_1[0]);
    int size_arr_2 = sizeof(arr_2) / sizeof(arr_2[0]);
    int k = 3;
    cout << "Count: " << modulo_pairs(arr_1, arr_2, size_arr_1, size_arr_2, k);
    return 0;
}

आउटपुट

Count: 2
  1. - C++ में दो सॉर्टेड सरणियों के मर्ज किए गए सरणी में kवां तत्व

    इस ट्यूटोरियल में, हम एक ऐसा प्रोग्राम लिखेंगे जो दो सॉर्टेड सरणियों के मर्ज किए गए सरणी से kवां तत्व ढूंढता है।आइए इस समस्या को हल करने के चरण देखते हैं।दो सॉर्टेड सरणियों को इनिशियलाइज़ करें।आकार m + n की एक खाली सरणी इनिशियलाइज़ करें।दोनों सरणियों को नई सरणी में मर्ज करें।मर्ज की गई सरणी से k - 1

  1. - C++ प्रोग्राम में क्रमानुसार दो सरणियों से तत्व चुनकर अधिकतम योग

    इस समस्या में, हमें दो सरणियाँ arr1[] और arr2[], और दो संख्याएँ N और M दी गई हैं। N, arr1 से लिए गए तत्वों की संख्या देता है। M, arr2 से लिए गए तत्वों की संख्या देता है। हमें arr1[i] से arr2[i] में से एक तत्व चुनना है, जिसके लिए योग अधिकतम हो, लेकिन अधिकतम N arr1 से और M arr2 से लिए जा सकते हैं।

  1. दो BSTs से योग x वाले नोड जोड़ों की गणना - C++ दो BSTs से योग x वाले नोड जोड़ों की गणना - C++

    समस्या विवरण हमें दो बाइनरी सर्च ट्री (BST) और एक मान x दिया गया है। लक्ष्य उन नोड जोड़ों की गणना करना है जहाँ एक नोड पहले BST से और दूसरा दूसरे BST से हो, और उनके डेटा का योग x के बराबर हो। उदाहरण आउटपुट: 1 (जोड़ी: 8+6=14) आउटपुट: 2 (जोड़ियाँ: 5+15=20, 4+16=20) दृष्टिकोण पहले BST को इनऑर्डर (छोटे