हमें सकारात्मक पूर्णांकों की एक सरणी के साथ दिया गया है। लक्ष्य इसमें मौजूद लगातार संख्याओं की अधिकतम संख्या ज्ञात करना है। सबसे पहले हम सरणी को सॉर्ट करेंगे और फिर आसन्न तत्वों की तुलना करेंगे 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