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

C++ में 2n+1 पूर्णांक तत्वों की सरणी में एकल तत्व खोजें


इस समस्या में, हमें (2n + 1) पूर्णांक मानों से युक्त एक सरणी दी गई है। इन सभी मानों में से, n तत्व सरणी में दो बार प्रकट होते हैं और सरणी में केवल एक तत्व है जो एक बार प्रकट होता है। हमारा कार्य 2n+1 पूर्णांक तत्वों की सरणी में एकल तत्व खोजना है।

आइए एक उदाहरण से इस समस्या को समझते हैं,

इनपुट

arr[] = {1, 3, 5, 6, 5, 1, 3}

आउटपुट

5

समाधान दृष्टिकोण

इस समस्या का एक सरल समाधान तत्वों के लिए एक काउंटर का उपयोग करना है। यदि कोई तत्व मिलता है, तो उसका मान और घटना काउंट स्टोर करें। इसके बाद उस तत्व को टेबल में खोजें जिसका घटना काउंट = 1 है। एक अधिक कुशल समाधान XOR का उपयोग करना होगा। यहां, हम सरणी के सभी तत्वों का XOR करेंगे। यह XOR डबल घटना वाले सभी तत्वों को 0 बना देगा। और केवल वही तत्व जिसका मान मौजूद होगा वह है जिसकी घटना 1 है।

यह XOR के गुणों के कारण है जो हैं -

- a^a = 0 - a^0 = a

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

उदाहरण

#include <iostream> using namespace std; int findSingleValue(int arr[], int n) {    int element = 0;    for (int i = 0; i < n; i++)       element = element ^ arr[i];    return element; } int main() {    int arr[] = { 1, 3, 5, 6, 5, 1, 3 };    int n = sizeof(arr) / sizeof(arr[0]);    cout<<"The element of the array with single occurrence is "<<findSingleValue(arr, n);    return 0; }

आउटपुट

The element of the array with single occurrence is 6

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

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

  1. - C++ में दिए गए सरणी के एलिमेंट्स के फैक्टोरियल का GCD खोजें

    मान लीजिए हमारे पास N एलिमेंट्स वाली एक सरणी A है। हमें सरणी के सभी एलिमेंट्स के फैक्टोरियल का GCD निकालना है। मान लीजिए एलिमेंट्स {3, 4, 8, 6} हैं, तो फैक्टोरियल का GCD 6 होगा। यहां हम ट्रिक देखेंगे। चूंकि दो संख्याओं का GCD वह सबसे बड़ी संख्या है जो दोनों को विभाजित करती है, तो दो संख्याओं के फैक्

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

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