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

C++ में दो ऐरे के बीच कम्पैटिबिलिटी अंतर ढूंढना


मान लें दो दोस्त हैं और अब वे अपनी बॉन्डिंग टेस्ट करना चाहते हैं। तो वे जांचेंगे कि वे कितने कम्पैटिबल हैं। 1..n तक की संख्या n दी गई है। और उनसे संख्याओं को रैंक करने के लिए कहा जाता है। उन्हें उनके बीच कम्पैटिबिलिटी अंतर ढूंढना है। कम्पैटिबिलिटी अंतर मूल रूप से उनके द्वारा दी गई एक ही मूवी की सापेक्ष रैंकिंग में बेमेल की संख्या है। इसलिए यदि A = [3, 1, 2, 4, 5], और B = [3, 2, 4, 1, 5], तो आउटपुट 2 होगा। कम्पैटिबिलिटी अंतर 2 है, क्योंकि पहला मूवी 1 को 2 और 4 से पहले रैंक करता है लेकिन दूसरा इसे बाद में रैंक करता है।

इसे हल करने के लिए, हम दोनों ऐरे को पार करेंगे, जब वर्तमान तत्व समान हों, तो कुछ न करें। फिर A और B की अगली स्थिति ढूंढें, मान लें स्थिति j है, एक-एक करके B[j] को B[i] पर ले जाएं।

उदाहरण

#include <iostream>
using namespace std;

int getArrayDiff(int A[], int B[], int n) {
    int result = 0;
    for (int i = 0; i < n; i++) {
        if (A[i] != B[i]) {
            int j = i + 1;
            while (A[i] != B[j])
                j++;
            while (j != i) {
                swap(B[j], B[j - 1]);
                j--;
                result++;
            }
        }
    }
    return result;
}

int main() {
    int A[] = {3, 1, 2, 4, 5};
    int B[] = {3, 2, 4, 1, 5};
    int n = sizeof(A) / sizeof(A[0]);
    cout << "Compatibility difference: " << getArrayDiff(A, B, n);
}

आउटपुट

Compatibility difference: 2
  1. - C++ का उपयोग करके दो सरणियों का ओवरलैपिंग योग खोजना

    समस्या विवरण इस समस्या में, हमें दो सरणियाँ arr1[] और arr2[] दी गई हैं जिनमें अद्वितीय मान होते हैं। हमारा कार्य दो सरणियों का ओवरलैपिंग योग खोजना है। सरणियों के सभी तत्व विशिष्ट हैं। और हमें उन तत्वों का योग वापस करना होगा जो दोनों सरणियों के लिए सामान्य हैं। उदाहरण इनपुट arr1[] = {5, 4, 9, 2} ar

  1. - C++ में दो अनसॉर्टेड सरणियों का यूनियन और इंटरसेक्शन ढूंढना

    परिचय इस ट्यूटोरियल में हम दो अनसॉर्टेड (unsorted) सरणियों के यूनियन (union) और इंटरसेक्शन (intersection) के लिए प्रोग्राम लिखना सीखेंगे। आइए एक उदाहरण देखते हैं। इनपुट arr_one = [1, 2, 3, 4, 5] arr_two = [3, 4, 5, 6, 7] आउटपुट union: 1 2 3 4 5 6 7 intersection: 3 4 5 यूनियन के चरण दोनों सर

  1. C++ में दो अलग-अलग गुड नोड्स की किसी भी जोड़ी के बीच सबसे छोटी दूरी खोजें C++ में दो अलग-अलग गुड नोड्स की किसी भी जोड़ी के बीच सबसे छोटी दूरी खोजें

    मान लीजिए हमारे पास N अलग-अलग नोड्स और M एजेज के साथ एक दिया गया वेटेड अनडायरेक्टेड ग्राफ है, कुछ नोड्स गुड नोड्स हैं। हमें किन्हीं दो अलग-अलग गुड नोड्स की जोड़ी के बीच सबसे छोटी दूरी खोजनी है। दिए गए आरेख में पीले नोड्स को गुड नोड्स माना जाता है। उदाहरण के लिए, यदि इनपुट इस तरह का है: तो आउटपुट 11