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

C++ में पूर्णांकों की सरणी में पहला दोहराने वाला तत्व ज्ञात करें


इस समस्या में, हमें n पूर्णांक मानों की एक सरणी arr दी गई है। हमारा कार्य पूर्णांकों की सरणी में पहला दोहराने वाला तत्व ज्ञात करना है।

हमें सरणी से पहला पूर्णांक मान ढूंढना है जो सरणी में एक से अधिक बार आया हो।

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

इनपुट : arr[] = {4, 1, 8, 9, 7, 2, 1, 6, 4} आउटपुट : 4

व्याख्या −

एक से अधिक घटना वाले पूर्णांक 4 और 1 हैं। 4 की पहली घटना 1 से छोटी है। इसलिए उत्तर 4 है

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

समस्या का एक सरल समाधान नेस्टेड लूप का उपयोग करना है। हम दो लूप का उपयोग करेंगे, बाहरी सरणी के प्रत्येक पूर्णांक मान को पुनरावृत्त करने के लिए और आंतरिक सरणी में उसी मान के साथ मौजूद अन्य पूर्णांक मान की जांच करने के लिए। यदि हां, तो मान लौटाएं। यह विधि अच्छी है लेकिन बिना समाधान के मामले में, इसकी O(N2) जटिलता होगी।

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

एक अन्य दृष्टिकोण जो समस्या को बेहतर ढंग से हल कर सकता है वह है हैशिंग का उपयोग करना। हम सरणी को अंतिम इंडेक्स से पार करेंगे और फिर देखे गए तत्व के लिए इंडेक्स पर न्यूनतम इंडेक्स अपडेट करेंगे।

उदाहरण

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

#include<bits/stdc++.h> using namespace std; int findRepeatingElementArray(int arr[], int n){    int minRetIndex = -1;    set<int> visitedElements;    for (int i = n - 1; i >= 0; i--){       if (visitedElements.find(arr[i]) != visitedElements.end())          minRetIndex = i;       else          visitedElements.insert(arr[i]);    }    if (minRetIndex != -1)     return arr[minRetIndex];    else return -1; } int main(){ int arr[] = {4, 1, 6, 3, 4, 1, 5, 8}; int n = sizeof(arr) / sizeof(arr[0]); cout<<"दोहराई गई घटना वाला तत्व है "<<findRepeatingElementArray(arr, n); }

आउटपुट

दोहराई गई घटना वाला तत्व है 4

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

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

  1. - C++ प्रोग्राम: संख्याओं के एरे के गुणनफल का पहला अंक ज्ञात करना

    इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो दिए गए एरे के तत्वों के गुणनफल का पहला अंक ज्ञात करता है। उदाहरण के लिए, मान लीजिए हमें एक एरे दिया गया है। arr = {12, 5, 16} तो इन तत्वों का गुणनफल 12*5*16 = 960 होगा। इसलिए, इस मामले में परिणाम यानी गुणनफल का पहला अंक 9 होगा। उदाहरण #include <bits

  1. - C++ प्रोग्राम: सरणी के पार्टीशन विधि से kवां सबसे छोटा तत्व खोजें

    एल्गोरिदमCreatePartition() फ़ंक्शन बनाएं जिसमें सरणी a, निचली सीमा l और ऊपरी सीमा h हो। in := l और pi := h सेट करें। l से h तक लूप चलाएं, यदि a[i] < a[pi] तो a[i] और a[in] को स्वैप करें और in बढ़ाएं। अंत में a[pi] और a[in] को स्वैप करें और in लौटाएं। Partition() फ़ंक्शन में: यदि low k-1 तो Partitio