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

C++ का उपयोग करके 1 से n-1 के बीच एकमात्र दोहराव वाला तत्व खोजें

इस समस्या में, हमें आकार N का एक अनियंत्रित सरणी arr[] दिया जाता है जिसमें 1 से N-1 तक के मान होते हैं, जिसमें एक मान सरणी में दो बार होता है। हमारा काम है 1 से n-1 के बीच केवल दोहराए जाने वाले तत्व को ढूंढना

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

इनपुट

arr[] = {3, 5, 4, 1, 2, 1}

आउटपुट

1

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

समस्या का एक सरल समाधान सरणी को पार करना है और प्रत्येक मान के लिए यह पता लगाएं कि तत्व सरणी में कहीं और मौजूद है या नहीं। डबल आवृत्ति के साथ मान लौटाएं।

उदाहरण 1

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <iostream>
using namespace std;
int findRepValArr(int arr[], int n){
   for(int i = 0; i < n; i++)
   for(int j = i+1; j < n; j++)
   if(arr[i] == arr[j])
      return arr[i];
}
int main(){
   int arr[] = { 5, 3, 2, 6, 6, 1, 4 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The repetitive value in the array is "<<findRepValArr(arr, n);
   return 0;
}

आउटपुट

The repetitive value in the array is 6

समस्या को हल करने का एक अन्य तरीका इस तथ्य का उपयोग करना है कि सरणी में दोहराए जाने वाले मान को 1 से (N-1) तक सभी पूर्णांकों के योग को सरणी योग से घटाकर पाया जाता है।

1 सेंट . का योग N-1 प्राकृत संख्या (Sn ) =n*(n-1)/2

doubleVal =arrSum - (Sn )

उदाहरण 2

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <iostream>
using namespace std;
int findRepValArr(int arr[], int n){
   int arrSum = 0;
   for(int i = 0; i < n; i++)
      arrSum += arr[i];
   int sn = (((n)*(n-1))/2);
   return arrSum - sn;
}
int main(){
   int arr[] = { 5, 3, 2, 6, 6, 1, 4 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The repetitive value in the array is "<<findRepValArr(arr, n);
   return 0;
}

आउटपुट

The repetitive value in the array is 6

  1. C++ में दो संख्याओं के बीच न्यूनतम दूरी ज्ञात कीजिए

    मान लीजिए कि हमारे पास एक क्रमबद्ध सरणी A है, और दो संख्याएँ x और y हैं। हमें A में x और y के बीच की न्यूनतम दूरी ज्ञात करनी है। सरणी में डुप्लिकेट तत्व भी हो सकते हैं। इसलिए यदि सरणी A =[2, 5, 3, 5, 4, 4, 2, 3], x =3 और y =2 है, तो 3 और 2 के बीच की न्यूनतम दूरी सिर्फ 1 है। इसे हल करने के लिए, हमें

  1. सी ++ में एसटीएल का उपयोग कर ऐरे का अधिकतम तत्व कैसे खोजें?

    यहां हम देखेंगे कि अधिकतम तत्व कैसे खोजें। तो अगर सरणी [12, 45, 74, 32, 66, 96, 21, 32, 27] की तरह है, तो अधिकतम तत्व 96 है। हम एल्गोरिदम में मौजूद max_element () फ़ंक्शन का उपयोग कर सकते हैं। प्राप्त करने के लिए हेडर फ़ाइल अधिकतम तत्व। उदाहरण #include<iostream> #include<algorithm> using

  1. C++ का उपयोग करके किसी सरणी में किसी संख्या की आवृत्ति ज्ञात करें।

    मान लीजिए कि हमारे पास एक सरणी है। एन विभिन्न तत्व हैं। हमें सरणी में एक तत्व की आवृत्ति की जांच करनी है। मान लीजिए A =[5, 12, 26, 5, 3, 4, 15, 5, 8, 4], अगर हम 5 की बारंबारता ज्ञात करने की कोशिश करते हैं, तो यह 3 होगा। इसे हल करने के लिए, हम सरणी को बाईं ओर से स्कैन करेंगे, यदि तत्व दिए गए नंबर के