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

C++ में किसी सरणी में मौजूद अधिकतम क्रमागत संख्याएं

हमें सकारात्मक पूर्णांकों की एक सरणी के साथ दिया गया है। लक्ष्य इसमें मौजूद लगातार संख्याओं की अधिकतम संख्या ज्ञात करना है। सबसे पहले हम सरणी को सॉर्ट करेंगे और फिर आसन्न तत्वों की तुलना करेंगे arr[j]==arr[i]+1 (j=i+1), यदि अंतर 1 है तो वेतन वृद्धि गणना और अनुक्रमणिका i++,j++ अन्य परिवर्तन गणना=1. अब तक मिली अधिकतम संख्या को अधिकतम में संग्रहीत करें।

इनपुट

Arr[]= { 100,21,24,73,22,23 }

आउटपुट

Maximum consecutive numbers in array : 4

स्पष्टीकरण - क्रमबद्ध सरणी है - { 21,22,23,24,73,100 } इनिशियलाइज़ काउंट=1,maxcount=1

1. 22=21+1 count=2 maxcount=2 i++,j++
2. 23=22+2 count=3 maxcount=3 i++,j++
3. 24=23+1 count=4 maxcount=4 i++,j++
4. 73=24+1 X count=1 maxcount=4 i++,j++
5. 100=73+1 X count=1 maxcount=4 i++,j++

अधिकतम क्रमागत संख्याएँ 4 { 21,22,23,24 }

. हैं

इनपुट

Arr[]= { 11,41,21,42,61,43,9,44 }

आउटपुट

Maximum consecutive numbers in array : 4

स्पष्टीकरण - क्रमबद्ध सरणी है - { 9,11,21,41,42,43,44,61 } इनिशियलाइज़ काउंट=1,maxcount=1

1. 11=9+1 X count=1 maxcount=1 i++,j++
2. 21=11+1 X count=1 maxcount=1 i++,j++
3. 41=21+1 X count=1 maxcount=1 i++,j++
4. 42=41+1 count=2 maxcount=2 i++,j++
5. 43=42+1 count=3 maxcount=3 i++,j++
6. 44=43+1 count=4 maxcount=4 i++,j++
7. 61=44+1 X count=1 maxcount=4 i++,j++

अधिकतम क्रमागत संख्याएँ 4 {41,42,43,44}

. हैं

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

  • पूर्णांक सरणी Arr[] का उपयोग पूर्णांकों को संग्रहीत करने के लिए किया जाता है।

  • पूर्णांक 'n' सरणी की लंबाई संग्रहीत करता है।

  • फंक्शन सब (int arr[], int n) एक सरणी लेता है, इसका आकार इनपुट के रूप में होता है और सरणी में मौजूद अधिकतम लगातार संख्या देता है।

  • सबसे पहले हम सॉर्ट (arr,arr+n)

    . का उपयोग करके सरणी को सॉर्ट करेंगे
  • अब काउंट=1 और मैक्ससी=1 को इनिशियलाइज़ करें।

  • पहले दो तत्वों से शुरू, एआर [0] और एआर [1] लूप के लिए दो के अंदर, तुलना करें ifarr[j]==arr[i]+1 ( j=i+1), यदि सही है तो वृद्धि गिनती और मैं द्वारा 1.

  • अगर ऊपर दी गई शर्त गलत है, तो गिनती को फिर से 1 में बदलें। अब तक के सबसे ज़्यादा काउंटफ़ाउंड के साथ मैक्ससी को अपडेट करें (maxc=count>maxc?count:maxc)।

  • अंत में परिणाम के रूप में अधिकतम लगातार तत्वों की संख्या के रूप में अधिकतम वापसी करें।

उदाहरण

#include <iostream>
#include <algorithm>
using namespace std;
int subs(int arr[],int n){
   std::sort(arr,arr+n);
   int count=1;
   int maxc=1;
   for(int i=0;i<n-1;i++){
      for(int j=i+1;j<n;j++){
         if(arr[j]==arr[i]+1){
             count++;
            i++;
         }
         else
            count=1;
         maxc=count>maxc?count:maxc;
      }
   }
   return maxc;
}
int main(){
   int arr[] = { 10,9,8,7,3,2,1,4,5,6 };
   int n = sizeof(arr) / sizeof(int);
   cout << "Maximum consecutive numbers present in an array :"<<subs(arr, n);
   return 0;
}

आउटपुट

Maximum consecutive numbers present in an array : 10

  1. C++ में सरणी में मौजूद कुंजी K की प्रायिकता

    आकार एन की एक सरणी के साथ दिया गया है और कार्य किसी सरणी में उपलब्ध होने पर दिए गए तत्व k की संभावना को खोजना है। संपूर्ण सरणी को n तक पार करें जो किसी सरणी में तत्वों की संख्या के बराबर है और दिए गए तत्व या कुंजी k की खोज करें। यदि तत्व किसी सरणी में मौजूद है तो इसकी संभावना की गणना करें अन्यथा 0

  1. सी ++ में एक सरणी में अधिकतम संतुलन योग

    समस्या कथन एक सरणी को देखते हुए []। उपसर्ग योग का अधिकतम मान ज्ञात करें जो कि गिरफ्तारी में अनुक्रमणिका i के लिए प्रत्यय योग भी है []। उदाहरण यदि इनपुट ऐरे है - Arr[] ={1, 2, 3, 5, 3, 2, 1} तो आउटपुट 11 है - उपसर्ग योग =गिरफ्तारी[0..3] =1 + 2 + 3 + 5 =11 और प्रत्यय योग =गिरफ्तारी[3..6] =5 + 3 +

  1. C++ में किसी सरणी का अधिकतम औसत योग विभाजन

    समस्या कथन एक सरणी को देखते हुए, हम संख्या A की एक पंक्ति को अधिकतम K आसन्न (गैर-रिक्त) समूहों में विभाजित करते हैं, फिर स्कोर प्रत्येक समूह के औसत का योग होता है। अधिकतम स्कोर क्या हो सकता है? उदाहरण यदि इनपुट सरणी {9, 2, 5, 3, 10} है तो हम सरणी को इस प्रकार विभाजित कर सकते हैं - {9} {2, 5, 3} औ