Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी . में सरणी में एक ही तत्व की दो घटनाओं के बीच अधिकतम दूरी


हमें पूर्णांकों की एक सरणी दी गई है। सरणी में समान तत्वों की कई घटनाएं होती हैं। यहाँ कार्य सरणी के किन्हीं दो समान तत्वों के बीच अधिकतम दूरी ज्ञात करना है। हम बाईं ओर से शुरू होने वाले सरणी से प्रत्येक तत्व को चुनेंगे। फिर हम उसी संख्या की अंतिम घटना पाएंगे और इंडेक्स के बीच अंतर को स्टोर करेंगे। अब अगर यह अंतर ज्यादा हो तो वापस कर दें।

इनपुट

Arr[] = { 1,2,4,1,3,4,2,5,6,5 }

आउटपुट −सरणी में एक ही तत्व की दो घटनाओं के बीच अधिकतम दूरी − 4

स्पष्टीकरण - अनुक्रमित के साथ दोहराई जाने वाली संख्याएं -

1. 1, first index 0, last index 3 distance=3-0-1=2
2. 2, first index 1, last index 6 distance=6-1-1=4
3. 5, first index 7, last index 9 distance=9-7-1=1
Maximum distance between two occurrences of same element : 4

इनपुट

Arr[] = { 10,20,1,10,10,21,12,0 }

आउटपुट −सरणी में एक ही तत्व की दो घटनाओं के बीच अधिकतम दूरी -3

स्पष्टीकरण - अनुक्रमित के साथ दोहराई जाने वाली संख्याएं -

1. 10 first index 0, last index 4 distance=4-0-1=3
Maximum distance between two occurrences of same element : 3

नोट - अगर इनपुट ऐरे में कोई रिपीटिंग नंबर नहीं है, तो रिटर्न -1

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम एक पूर्णांक सरणी लेते हैं जिसमें दोहराई जाने वाली संख्याएं Arr[]

    . के रूप में होती हैं
  • फ़ंक्शन maxDistance(int arr[],int n) का उपयोग एक ही तत्व की दो घटनाओं के बीच अधिकतम दूरी की गणना करने के लिए किया जाता है।

  • हम वैरिएबल maxD को -1 से इनिशियलाइज़ करते हैं।

  • लूप के अंदर शुरुआत से ही पूर्णांकों की सरणी को पार करें।

  • लूप के लिए नेस्टेड में शेष तत्वों को पार करें और यदि कोई हो तो दोहराव की खोज करें। (अगर (गिरफ्तारी [i] ==गिरफ्तारी [जे])।

  • यदि यह सत्य है तो सूचकांकों को घटाकर संख्याओं के बीच के अंतर की गणना करें। (अस्थायी=j-i-1)

  • यदि यह मान अब तक अधिकतम पाया गया है, तो इसे maxD में संग्रहीत करें

  • संपूर्ण सरणी को पार करने के बाद maxD लौटाएं।

उदाहरण

#include <stdio.h>
#include <math.h>
int maxDistance(int arr[],int n){
   int size = n;
   int maxD = -1;
   for (int i = 0; i < n - 1; i++)
      for (int j = i + 1; j < n; j++)
         if (arr[i] == arr[j]){
            int temp=abs(j-i-1);
            maxD = maxD>temp?maxD:temp;
         }
   return maxD;
}
// Driver code
int main(){
   int Arr[] = {1,2,4,1,3,4,2,5,6,5};
   printf("Maximum distance between two occurrences of same element in array:%d", maxDistance(Arr,10) );
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Maximum distance between two occurrences of same element in array − 4

  1. C++ में किसी भी शहर और स्टेशन के बीच अधिकतम दूरी ज्ञात कीजिए

    अवधारणा दिए गए शहरों की संख्या के संबंध में एन की संख्या 0 से एन -1 तक और जिन शहरों में स्टेशन स्थित हैं, हमारा काम किसी भी शहर और उसके निकटतम स्टेशन के बीच अधिकतम दूरी निर्धारित करना है। यह ध्यान दिया जाना चाहिए कि स्टेशनों वाले शहरों को किसी भी क्रम में दिया जा सकता है। इनपुट numOfCities = 6, sta

  1. C++ में BST के दो नोड्स के बीच अधिकतम तत्व

    समस्या कथन एन तत्वों की एक सरणी और दो पूर्णांक ए, बी को देखते हुए जो दिए गए सरणी से संबंधित है। एआर [0] से एआर [एन -1] तक तत्व डालने से बाइनरी सर्च ट्री बनाएं। कार्य A से B तक के पथ में अधिकतम तत्व को खोजना है। उदाहरण यदि सरणी {24, 23, 15, 36, 19, 41, 25, 35} है तो हम निम्न प्रकार से BST बना सकते

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

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