हमें धनात्मक पूर्णांकों की एक सरणी दी गई है। लक्ष्य इसमें मौजूद अधिकतम लगातार संख्याओं की संख्या ढूंढना है। सबसे पहले हम सरणी को सॉर्ट करेंगे और फिर आसन्न तत्वों की तुलना करेंगे arr[j]==arr[i]+1 (j=i+1), यदि अंतर 1 है तो count बढ़ाएं और इंडेक्स i++,j++ अन्यथा count=1 बदलें। अब तक मिली अधिकतम गणना को maxc में संग्रहीत करें।
इनपुट
Arr[]= { 100,21,24,73,22,23 } आउटपुट
सरणी में अधिकतम लगातार संख्याएं: 4
व्याख्या: सॉर्ट की गई सरणी है - { 21,22,23,24,73,100 } count=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 } आउटपुट
सरणी में अधिकतम लगातार संख्याएं: 4
व्याख्या: सॉर्ट की गई सरणी है - { 9,11,21,41,42,43,44,61 } count=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' सरणी की लंबाई संग्रहीत करता है।
- फ़ंक्शन subs(int arr[], int n) एक सरणी, इसके आकार को इनपुट के रूप में लेता है और सरणी में मौजूद अधिकतम लगातार संख्याएं लौटाता है।
- सबसे पहले हम sort(arr,arr+n) का उपयोग करके सरणी को सॉर्ट करेंगे।
- अब count=1 और maxc=1 आरंभ करें।
- पहले दो तत्वों, arr[0] और arr[1] से दो for लूप के अंदर शुरू करके, तुलना करें यदि arr[j]==arr[i]+1 (j=i+1), यदि सच है तो count बढ़ाएं और i को 1 से बढ़ाएं।
- यदि उपरोक्त शर्त गलत है तो फिर count को 1 पर बदलें। अब तक मिली उच्चतम गणना से maxc अपडेट करें (maxc=count>maxc?count:maxc)।
- अंत में परिणाम के रूप में अधिकतम लगातार तत्वों की संख्या के रूप में 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;imaxc?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 << "सरणी में अधिकतम लगातार संख्याएं: "<<subs(arr, n); return 0; } आउटपुट
सरणी में अधिकतम लगातार संख्याएं: 10