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

C में सरणी में एक तत्व के पहले और अंतिम सूचकांकों के बीच अधिकतम अंतर


हमें आकार N की पूर्णांकों की एक सरणी दी गई है। सरणी में पूर्णांक यादृच्छिक क्रम में होते हैं। कार्य सरणी में एक तत्व के पहले और अंतिम सूचकांकों के बीच अधिकतम अंतर ढूंढना है। हमें एक ऐसी संख्या ढूंढनी है जो सरणी में दो बार प्रकट होती है और उसके सूचकांकों के बीच का अंतर अधिकतम है। यदि ऐसे अधिक युग्म हैं तो हम सूचकांकों के बीच ऐसे अधिकतम अंतर को संग्रहीत करेंगे।

इनपुट

Arr[] = { 2, 1, 3, 1, 3, 2, 5, 5 }.

आउटपुट

सरणी में एक तत्व के पहले और अंतिम सूचकांकों के बीच अधिकतम अंतर: 5

व्याख्या

तत्व के युग्म और उनके सूचकांकों के बीच अंतर निम्नानुसार हैं:

(2,2) Arr[0] और Arr[5] 5-0=5 अब तक अधिकतम अंतर 5 है (1,1) Arr[1] और Arr[3] 3-1=2 अब तक अधिकतम अंतर 5 है (3,3) Arr[2] और Arr[4] 4-2=2 अब तक अधिकतम अंतर 5 है (5,5) Arr[6] और Arr[7] 7-6=1 अब तक अधिकतम अंतर 5 है

इनपुट

Arr[] = { 2, 2, 3, 4, 8, 3, 4, 4, 8, 7 }.

आउटपुट

सरणी में एक तत्व के पहले और अंतिम सूचकांकों के बीच अधिकतम अंतर: 4

व्याख्या

तत्व के युग्म और उनके सूचकांकों के बीच अंतर निम्नानुसार हैं:

(2,2) Arr[0] और Arr[1]; 1-0=1; अब तक अधिकतम अंतर 1 है (3,3) Arr[2] और Arr[5]; 5-2=3; अब तक अधिकतम अंतर 3 है (4,4,4) Arr[3], Arr[6], Arr[7]; 7-6=1, 6-3=3, 7-3=4; अब तक अधिकतम अंतर 4 है (8,8) Arr[4] और Arr[8]; 8-4=4; अब तक अधिकतम अंतर 4 है

उपयोग किया गया दृष्टिकोण

  • यादृच्छिक क्रम में दोहराई गई संख्याओं वाली पूर्णांकों की एक सरणी घोषित करें (Arr[])।

  • सरणी के आकार को संग्रहीत करने के लिए एक चर बनाएं (N)।

  • फ़ंक्शन maxDifference(int Arr[], int n) सरणी में एक तत्व के पहले और अंतिम सूचकांकों के बीच अधिकतम अंतर (maxD) की गणना के लिए उपयोग किया जाता है।

  • maxDifference() के अंदर हमने maxD घोषित किया है जो अब तक मिले अधिकतम सूचकांक अंतर को संग्रहीत करता है।

  • पहले तत्व (सूचकांक i=0) से शुरू करके फॉर लूप का उपयोग करके सरणी को पार करें।

  • नेस्टेड फॉर लूप में शेष सरणी (j=i+1) को अंतिम सूचकांक तक पार करें।

  • यदि हमें Arr[i] के समान तत्व मिलते हैं तो हम इसके सूचकांकों i, j के बीच का अंतर निकालते हैं और यदि यह maxD के पिछले मान से अधिक है, तो हम maxD को अद्यतन करते हैं।

  • इसे दोनों फॉर लूप के अंत तक जारी रखें।

  • maxD में संग्रहीत परिणाम लौटाएं।

उदाहरण

#include <stdio.h> int maxDifference(int arr[], int n){     int maxD = 0;     for(int i = 0; i < n - 1; i++){         for(int j = i + 1; j < n; j++){             if(arr[i] == arr[j] && (j - i) > maxD)                 maxD = j - i;         }     }     return maxD; } int main(){     int Arr[] = {1, 4, 1, 3, 3, 5, 4, 5, 2};     int N = sizeof(Arr) / sizeof(Arr[0]);     printf("सरणी में एक तत्व के पहले और अंतिम सूचकांकों के बीच अधिकतम अंतर: %d", maxDifference(Arr, N));     return 0; }

आउटपुट

उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:

सरणी में एक तत्व के पहले और अंतिम सूचकांकों के बीच अधिकतम अंतर: 5
  1. - C++ में std::vector और std::array के बीच अंतर

    निम्नलिखित vector और array के बीच अंतर हैं −Vector एलिमेंट्स को स्टोर करने के लिए एक सीक्वेंशियल कंटेनर है और इंडेक्स आधारित नहीं है।Array एक ही प्रकार के एलिमेंट्स का एक फिक्स्ड-साइज़ सीक्वेंशियल कलेक्शन स्टोर करता है और यह इंडेक्स आधारित है।Vector प्रकृति में डायनामिक है इसलिए, एलिमेंट्स के

  1. - ArrayBlockingQueue और ArrayDeque में अंतर

    ArrayBlockingQueue तत्वों को FIFO क्रम में संग्रहीत करता है। तत्व का सम्मिलन हमेशा कतार के टेल पर होता है और तत्व का निष्कासन हमेशा कतार के हेड से होता है। यह थ्रेड-सेफ है और यह एक बाउंडेड सरणी कतार है इसलिए एक बार बनाने के बाद, क्षमता को बदला नहीं जा सकता। यह BlockingQueue इंटरफेस का कार्यान्वयन है

  1. - पायथन में सॉर्टेड सरणी में तत्व की पहली और अंतिम स्थिति ढूंढना

    मान लीजिए हमारे पास पूर्णांकों की एक सरणी A है। यह आरोही क्रम में सॉर्टेड है, हमें दिए गए लक्ष्य मान की शुरुआती और अंतिम स्थिति ढूंढनी है। जब लक्ष्य सरणी में नहीं मिलता है, तो [-1, -1] लौटाएं। इसलिए यदि सरणी [2,2,2,3,4,4,4,4,5,5,6] जैसी है, और लक्ष्य 4 है, तो आउटपुट [4,7] होगा।इसे हल करने के लिए, हम