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

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


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

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

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

आउटपुट

5

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

समस्या का एक सरल समाधान तत्वों के लिए एक काउंटर का उपयोग करना है। यदि कोई तत्व सामने आता है, तो उसके मूल्य और घटना की संख्या को संग्रहीत करें। इसके बाद तालिका में उस तत्व की खोज करें जिसमें घटना संख्या =1 है। एक अधिक कुशल समाधान एक्सओआर का उपयोग करेगा। यहां, हम सरणी के सभी तत्वों का 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. सी ++ में सरणी में प्रत्येक तत्व की सर्पासर गणना खोजें

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

  1. C++ में दिए गए सरणी के तत्वों के भाज्य का GCD ज्ञात कीजिए

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

  1. सी ++ प्रोग्राम एक ऐरे का सबसे बड़ा तत्व खोजने के लिए

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