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

C++ में डुप्लिकेट सरणी से खोया हुआ तत्व खोजें


अवधारणा

दो दी गई सरणियों के संबंध में जो एक तत्व को छोड़कर एक-दूसरे की डुप्लिकेट हैं, इसका मतलब है कि एक सरणी से एक तत्व गायब है, हमारा कार्य उस गायब तत्व को निर्धारित करना है।

इनपुट

arr1[] = {2, 5, 6, 8, 10} arr2[] = {5, 6, 8, 10}

आउटपुट

2

2 दूसरी सरणी से गायब है।

इनपुट

arr1[] = {3, 4, 5, 6} arr2[] = {3, 4, 5, 6, 7}

आउटपुट

7

7 पहली सरणी से गायब है।

विधि

यहां, हम एक सरल समाधान लागू करते हैं जहां हम सरणियों पर पुनरावृति करते हैं और तत्व दर तत्व सत्यापित करते हैं और जब एक बेमेल का पता चलता है तो गायब तत्व को चिह्नित करते हैं। लेकिन इस समाधान की कमी यह है कि इसके लिए सरणी के आकार पर रैखिक समय की आवश्यकता होती है।

हम एक और कुशल समाधान लागू कर सकते हैं जो बाइनरी खोज दृष्टिकोण पर आधारित है। हम नीचे दिए गए एल्गोरिदम का पालन करते हैं जिसे चरण दर चरण समझाया गया है −

  • बड़े सरणी में बाइनरी खोज शुरू करें और mid को (low + high) / 2 के रूप में प्राप्त करें
  • यह देखा गया है कि यदि दोनों सरणी से मान समान है तो गायब तत्व दाहिने भाग में होना चाहिए इसलिए low को mid के रूप में चिह्नित करें
  • अन्यथा high को mid के रूप में चिह्नित करें क्योंकि यदि mid तत्व समान नहीं है तो गायब तत्व बड़े सरणी के बाएं भाग में होना चाहिए।
  • हमें विशेष मामले को अलग से संभालना होगा क्योंकि एकल तत्व और शून्य तत्व सरणी के लिए, एकल तत्व स्वयं गायब तत्व होगा।

यह देखा गया है कि यदि पहला तत्व स्वयं बराबर नहीं है तो वह तत्व गायब तत्व होगा।

उदाहरण

// C++ program to find missing element from same // arrays (except one missing element) #include <bits/stdc++.h> using namespace std; // बाइनरी खोज दृष्टिकोण के आधार पर गायब तत्व निर्धारित करने वाला फ़ंक्शन। arrA[] बड़े आकार का है और // Q इसका आकार है। arrA[] और arrB[] माने जाते हैं // समान क्रम में। int findMissingUtil(int arrA[], int arrB[], int Q){    // विशेष मामले पर विचार करें, केवल तत्व के लिए जो    // दूसरी सरणी में गायब है    if (Q == 1)       return arrA[0];    // विशेष मामले पर विचार करें, पहले तत्व के गायब होने के लिए    if (arrA[0] != arrB[0])       return arrA[0];    // वर्तमान कोने बिंदुओं को इनिशियलाइज़ करने के लिए उपयोग किया जाता है    int low = 0, high = Q - 1;    // low < high तक पुनरावृति करें    while (low < high){       int mid = (low + high) / 2;       // यह देखा गया है कि यदि mid सूचकांकों पर तत्व बराबर हैं       // तो दाएं उपसरणी पर जाएं       if (arrA[mid] == arrB[mid])          low = mid;       else          high = mid;          // इसलिए यदि low, high सन्निकट हो जाते हैं, तो ब्रेक करें       if (low == high - 1)       break;    }    // अब गायब तत्व बड़े सरणी के    // high सूचकांक पर होगा    return arrA[high]; } // तो यह फ़ंक्शन मुख्य रूप से बुनियादी त्रुटि जांच करता है // और findMissingUtil को कॉल करता है void findMissing(int arrA[], int arrB[], int P, int Q){    if (Q == P-1)       cout << "Missing Element is "         << findMissingUtil(arrA, arrB, P) << endl;    else if (P == Q-1)       cout << "Missing Element is "         << findMissingUtil(arrB, arrA, Q) << endl;    else    cout << "Invalid Input"; } // ड्राइवर कोड int main(){    int arrA[] = {2, 5, 6, 8, 10};    int arrB[] = {5, 6, 8, 10};    int P = sizeof(arrA) / sizeof(int);    int Q = sizeof(arrB) / sizeof(int);    findMissing(arrA, arrB, P, Q);    return 0; }

आउटपुट

Missing Element is 2

  1. - C++ में सरणी के प्रत्येक तत्व का सरपासर काउंट खोजें

    मान लीजिए एक सरणी A दी गई है। हमें उस सरणी में प्रत्येक तत्व के सरपासर की संख्या ज्ञात करनी है। सरपासर वे बड़े तत्व हैं जो वर्तमान तत्व के दाईं ओर सरणी में मौजूद हैं। मान लीजिए A = {2, 7, 5, 3, 0, 8, 1}, सरपासर हैं {4, 1, 1, 1, 2, 0, 0}, इसलिए 2 के दाईं ओर 4 संख्याएं हैं जो 2 से बड़ी हैं, और इसी नि

  1. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

    एक सरणी में कई एलिमेंट्स होते हैं और सरणी में सबसे बड़ा एलिमेंट वह होता है जो अन्य एलिमेंट्स से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा एलिमेंट है और यह इंडेक्स 2 पर है। सरणी का सबसे बड़ा एलिमेंट खोजने का एक प्रोग्राम निम्नलिखित है। उदाहरण #include <iostream>

  1. - Python में डुप्लिकेट सरणी से खोया हुआ तत्व ढूंढना

    मान लीजिए हमारे पास दो सरणियाँ हैं जो एक-दूसरे की डुप्लिकेट हैं सिवाय एक तत्व के, तो, दिए गए सरणियों में से एक से एक तत्व गायब है, हमें उस लापता तत्व को ढूंढना है। तो, यदि इनपुट A = [2, 5, 6, 8, 10], B = [5, 6, 8, 10] की तरह है, तो आउटपुट 2 होगा क्योंकि 2 दूसरी सरणी से गायब है। इसे हल करने के लिए, ह